vb.net实现字符串加密和解密(RSA)之一

以前我的文章介绍了对称加密和HASH加密在vb.net上的实现。

这一次要介绍的是非对称加密在vb.net上的实现。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

目前最常用的非对称加密算法是RSA算法。

工具/原料

VS2015

方法/步骤

1

不对称加密解密使用场景

(1)A用户群使用公钥加密数据,B用户使用私钥解密数据

公钥加密,私钥解密。

vb.net实现字符串加密和解密(RSA)之一

2

(2)B用户使用私钥加密数据,A用户群使用公钥解密数据

私钥数字签名,公钥验证。

vb.net实现字符串加密和解密(RSA)之一

3

vb.net实现RSA加密的流程

1.RSA加密解密:(1)获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥 (2)加密 (3)解密 2.RSA签名和验证(1)获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥 (2)获取待签名的Hash码 (3)获取签名的字符串 (4)验证

vb.net实现字符串加密和解密(RSA)之一

vb.net实现字符串加密和解密(RSA)之一

4

打开VS2015,新建一窗体程序

界面如图

注:下一页是另一个窗体RSA的签名和认证

vb.net实现字符串加密和解密(RSA)之一

5

我们首先实现RSA加密解密功能

在“生成公钥和私钥文件”按钮添加如下事件

vb.net实现字符串加密和解密(RSA)之一

6

RSA加密解密的第一个步骤,获取密钥

密钥是一对:公钥和私钥。

公钥用来加密,私钥用来解密

我把密钥存放到程序根目录下。

当然这不是标准的XML文档。

vb.net实现字符串加密和解密(RSA)之一

7

RSA加密解密的第二个步骤,加密

我们添加一个模块Module1

在里面添加公钥加密函数RSAEncryptStr

vb.net实现字符串加密和解密(RSA)之一

8

在公钥加密按钮添加click事件

加密功能完成

vb.net实现字符串加密和解密(RSA)之一

9

先不要测试,完成第三步解密的功能

在模块里再添加私钥解密函数RSAEncryptStr和HEX字符串转byte数组的函数HexStringToBytes

10

在私钥解密按钮添加click事件

vb.net实现字符串加密和解密(RSA)之一

11

下面测试一下

运行程序,在待加密字符里添加字符,

点击公钥加密

如图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2c26abd578fe888636d9cb042318e7f4.html