以前我的文章介绍了对称加密和HASH加密在vb.net上的实现。
这一次要介绍的是非对称加密在vb.net上的实现。
非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。
目前最常用的非对称加密算法是RSA算法。
工具/原料
VS2015
方法/步骤
1
不对称加密解密使用场景
(1)A用户群使用公钥加密数据,B用户使用私钥解密数据
公钥加密,私钥解密。
2
(2)B用户使用私钥加密数据,A用户群使用公钥解密数据
私钥数字签名,公钥验证。
3
vb.net实现RSA加密的流程
1.RSA加密解密:(1)获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥 (2)加密 (3)解密 2.RSA签名和验证(1)获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥 (2)获取待签名的Hash码 (3)获取签名的字符串 (4)验证
4
打开VS2015,新建一窗体程序
界面如图
注:下一页是另一个窗体RSA的签名和认证
5
我们首先实现RSA加密解密功能
在“生成公钥和私钥文件”按钮添加如下事件
6
RSA加密解密的第一个步骤,获取密钥
密钥是一对:公钥和私钥。
公钥用来加密,私钥用来解密
我把密钥存放到程序根目录下。
当然这不是标准的XML文档。
7
RSA加密解密的第二个步骤,加密
我们添加一个模块Module1
在里面添加公钥加密函数RSAEncryptStr
8
在公钥加密按钮添加click事件
加密功能完成
9
先不要测试,完成第三步解密的功能
在模块里再添加私钥解密函数RSAEncryptStr和HEX字符串转byte数组的函数HexStringToBytes
10
在私钥解密按钮添加click事件
11
下面测试一下
运行程序,在待加密字符里添加字符,
点击公钥加密
如图