用現實生活的例子解釋非對稱加密

2022-03-17 03:58:30 字數 759 閱讀 5826

通訊條件

我有兩把鎖和兩把對應的鑰匙:

私鑰a、私鎖b

公鎖a、公鑰b

私鑰a可以開公鎖a,公鑰b可以開公鎖b

公鎖a和公鑰b放到了門外,所有人都可以拿

私鑰a和私鎖b,我自己藏著不讓人知道

你也有兩把鎖和兩把對應的鑰匙:

私鑰c、私鎖d

公鎖c、公鑰d

公鎖c和公鑰d放到了門外,所有人都可以拿

私鑰c和私鎖d,你自己藏著不讓人知道

通訊過程

為了給你傳遞訊息,我拿了你的公鎖c來鎖住我的訊息,這時只有你能用私鑰c來開啟檢視訊息。為了讓你知道這個訊息是我發的,而不是別人發的,我拿了自己的私鎖b,又在外面加了鎖。

訊息到你那以後,你先拿我的公鑰b開啟了我的私鎖b,然後就看到了用你的公鎖c鎖住的訊息,因為只有你自己有私鑰c,所以只有你才能看到裡面的訊息。

輪到你給我發訊息了,你先拿我的公鎖a鎖住了訊息,保證只有我能看到訊息,然後為了證明訊息是你發的,你就拿了你的私鎖d在外面又加了一把鎖,這把鎖大家可用你的私鑰d來開。

我收到訊息後,去拿你的公鑰d開了你外面的私鎖d,然後用我的私鑰a開了裡面的公鎖a,然後我就可以看到裡面的訊息了。

上面的例子對應於私鑰公鑰加密體制的公鑰、私鑰如下:

我的公鑰:公鎖a和公鑰b

我的私鑰:私鑰a和私鎖b

你的公鑰:公鎖c和公鑰d

你的私鑰:私鑰c和私鎖d

事實上每人都有兩把鎖和對應的鑰匙。

程式設計師的日常的現實生活

但是,這些開發人員往往更加重視您在成為開發人員之前需要了解的技術內容 而不是根據開發人員在工作中的日常生活現實需要了解的內容 如何處理與團隊成員,完整的專案截止日期,以及當您遇到無法自己處理的問題時與團隊溝通。這些問題已被廣泛討論,但在這方面可以做更多準備。本 調了您需要了解的一些內容,不僅是在成為...

程式開發 在現實生活中尋找可利用的資源

經歷了很多次軟體開發之後,每個程式設計師是否都會體驗到程式與我們的生活 工作密切相關。每次的程式要麼應用到生活的某個娛樂 助理以及工作的各種場合,在進行開發之前,總會圍繞著用它幹什麼,能給我帶來什麼效益開端。那麼,生命即將開始。前期的規劃是整個生命的重中之重,沒有乙個完美的應用採集,分析,架構,程式...

用小例子來解釋svn switch的使用

svn switch 的作用,不大好講清楚。用語言描述起來是 switch命令只是update命令的乙個超集。svn switch和svn update兩個命令唯一區別就是update會一直比較同一路徑。換名話說,update通過時間移動你的工作拷貝,switch通過時間和空間移動工作拷貝。本文的例...