在使用ASP.NET MVC密码加密时,就需要用到加密算法,以前总体的来说就是二进制、八进制、十六进制转换、md5转换、移位运算<<等混合操作来加密。查看新的加密文件mq_comm.js时发现新的算法可能是用RSA Encryption相关算法来实现的。RSA算法应该在几年前就遇到过很多次,但每次都因为复杂的数论知识而没看懂其算法(这也验证了编程的核心是算法,算法的核心是数学的思维,同时也回答了纯数字有什么用的问题。),这次静下心来仔细看了一下,将学习成果总结如下:遇到不懂的地方可以先了解大概,然后继续看,后面会有详细介绍。
美国麻省理工学院的Rivest、Shamir 和 Adleman 实现了非对称加密算法,用他们名字命名叫RSA算法。是目前使用最广最优秀的加密算法,几乎有网络的地方就要用到它。
对称加密算法DES:加密,解密采用同一密钥。
非对称加密算法RSA:加密采用公钥,解密用私钥,公钥解不开。
一、加密,解密过程。
假设:n=3233,e=17,d=2753
公钥(n,e) =(3233,17),私钥(n,d)=(3233, 2753)
6、加密:公钥(n,e) =(3233,17),加密公式:me ≡ c (mod n)
已知明文m,公钥n,e,求密文c.
eg:明文m=65,加密为密文C=2790
m=65à代入公式:6517 ≡ 2790 (mod 3233)à c=2790
7、解密:私钥(n,d)=(3233, 2753),解密公式:cd ≡ m (mod n)
已知密文c,私钥n,d,求明文m。
密文C=2790,解密为明文m=65
c=2790à带入公式27902753 ≡ 65 (mod 3233)àm=65