Linux下SHA256计算哈希值和RSA加密

项目中遇到系统之间文件传输要使用SHA256 with RSA1024加密,计算签名。详细了解了一下。 n2B免费资源网

1、SHA256n2B免费资源网

哈希算法用于计算信息摘要。因为md5和sha1有被碰撞和破解的可能性,所以使用sha256。 n2B免费资源网

1.1、使用sha256sum命令计算哈希值n2B免费资源网

输入:一个文件或一个字符串n2B免费资源网

输出:SHA256输出256bit,32个字节,显示为64个16进制字符 n2B免费资源网

1)当对字符串计算哈希值时,字符串不变,计算出的哈希值结果是一致的n2B免费资源网

2)当对两个文件计算时,文件生成时间不同,但文件内容相同,计算出的哈希值是一致的n2B免费资源网

3)当对两个相同内容的文件,分别打包压缩成tar.gz格式后,计算出的哈希值结果不一致n2B免费资源网

应该是在tar打包压缩时,添加了随机数,造成两个文件的哈希值不一致 n2B免费资源网

2、RSA加密
RSA每次生成的密文都不一致?n2B免费资源网

公钥相同,明文相同,每次RSA加密的结果都不一致。因为RSA算法,加密前对明文进行了随机数填充,解密的结果不会受到影响。 n2B免费资源网

输入:一个文件或一个字符串n2B免费资源网

输出:RSA 1024输出密文1024bit,128个字节的16进制字符 n2B免费资源网

因为RSA key长度是1024,所以输出的密文也是1024吗?n2B免费资源网

2.1、使用openssl命令计算RSA加解密n2B免费资源网

genrsa 生成的文件并不包含公钥,但是包含了私钥的详细信息。rsa命令可以根据这个文件生成对应的公钥。n2B免费资源网

生成私钥:
n2B免费资源网

openssl genrsa -out test.key 1024

生成公钥: n2B免费资源网

openssl rsa -in test.key -pubout -out test_pub.key

用公钥加密: n2B免费资源网

openssl rsautl -encrypt -pubin -inkey test_pub.key -in aaa.txt -out en.txt

用私钥解密: n2B免费资源网

openssl rsautl -decrypt -inkey test.key -in en.txt -out de.txt

结果:
de.txt文件内容与aaa.txt内容一样 n2B免费资源网

2.2、公私钥的使用n2B免费资源网

加密–公钥n2B免费资源网

解密–私钥n2B免费资源网

签名–私钥n2B免费资源网

验证–公钥 n2B免费资源网

参考资料:n2B免费资源网

http://blog.sina.com.cn/s/blog_8d05143b01012xqf.htmln2B免费资源网

http://blog.csdn.net/topgun_chenlingyun/article/details/43270549n2B免费资源网

http://blog.csdn.net/defonds/article/details/42775183 n2B免费资源网

《免费共享资源》本网站内容收集于互联网,不承担任何由于内容的合法性及健康性所引起的争议和法律责任。
免费共享资源网 » Linux下SHA256计算哈希值和RSA加密

发表评论

提供最优质的资源集合

立即查看 了解详情