RSA加密Socket传输文件、签名(一)

RSA加密分为公钥加密和私钥解密以及可能的数字签名。

公钥、私钥分居客户端和服务器端,分别用于加密和解密。同时,私钥还用于签名,公钥还用于验证签名。

解密加密用到JDK中java.security、javax.crypto两个包中相关的接口和类

1.生成密钥的代码

2.加密、解密(RSA加密速度比较慢,原因是每次只能为最多117 bytes加密,加密之后为128 Bytes)

3.用私钥进行数字签名,用于服务器端验证客户端数据是否是正确数据。

数字签名是在客户端进行,所用的私钥不是和用于加密的公钥成对的。

也就是说这样的通信 要在客户端保存有 服务器端的公钥和本地的私钥,而服务器端应该保存有本地的私钥和客户端的公钥。

你可能感兴趣的:(socket)