编程加密总结

实际上rsa在理论方面,并没有严格的加密和解密的概念,因为他是非对称的算法,看一下那个数学公式就知道了。
非对称算法,主要用于签名的,也就是验证当前这个人是不是张三。张三的公钥可以给任何人,私坚决不能给任何人,私钥也给人家了就没有任何意义了。
例如:李四想给张三发送文件的时候,李四需要用自己的私钥做运算,然后发送给张三,然后张三用李四的公钥做运算,得到的文件,就一定是李四的,因为李四的私钥只有李四一个人持有。
任何人的公钥都可以在网络上公开,所以张三可以在网络上找到李四的公钥或者直接和李四要也行。
对于加解密,一般使用的是对称密钥(比如des算法,aes算法),当然非对称密钥也能用于加解密,但是非对称的数学原理决定了用于加密,速度太慢。
对于验证完整性,用hash来做。比如md5,sha1,sha256这些都是hash算法。
所以安全的组合可以由这三个组成,hash用于完整性,非对称算法做签名,对称算法做加密。
平常公司传文件,一般用PGP加密,pgp就包含了对称和非对称算法的使用。

原文地址:https://www.cnblogs.com/jpfss/p/9854953.html