用非对称密钥加密
非对称密钥加密要求生成公钥和私钥,用“公”钥对消息加密,但是用“私”钥解密.
生成非对称密钥对.
In[1]:=
![Click for copyable input](assets.zh/use-asymmetric-key-cryptography/In_28.png)
keys = GenerateAsymmetricKeyPair[]
Out[1]=
![](assets.zh/use-asymmetric-key-cryptography/O_23.png)
用公钥对消息加密.
In[2]:=
![Click for copyable input](assets.zh/use-asymmetric-key-cryptography/In_29.png)
encrypted =
Encrypt[keys["PublicKey"],
"The gold is located off the coast of Honduras."]
Out[2]=
![](assets.zh/use-asymmetric-key-cryptography/O_24.png)
不能用为之加密的公钥来对消息解密. 必须使用私钥.
In[3]:=
![Click for copyable input](assets.zh/use-asymmetric-key-cryptography/In_30.png)
Decrypt[keys["PublicKey"], encrypted]
![](assets.zh/index.zh/M_1.gif)
Out[3]=
![](assets.zh/use-asymmetric-key-cryptography/O_25.png)
In[4]:=
![Click for copyable input](assets.zh/use-asymmetric-key-cryptography/In_31.png)
Decrypt[keys["PrivateKey"], encrypted]
Out[4]=
![](assets.zh/use-asymmetric-key-cryptography/O_26.png)