赞
踩
出处:http://blog.csdn.net/u012234115/article/details/72762045
转自:http://www.cnblogs.com/findumars/p/7252839.html
openssl里面有很多用于摘要哈希、加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证。下面以md5,sha256,des,rsa几个典型的api简单使用作为例子。
算法介绍
md5:https://en.wikipedia.org/wiki/MD5
sha256:https://en.wikipedia.org/wiki/SHA-2
des: https://en.wikipedia.org/wiki/Data_Encryption_Standard
rsa: https://en.wikipedia.org/wiki/RSA_(cryptosystem)
工程配置
以windows下为例
代码
运行结果
注:
(1)在读取公钥文件时,PEM_read_RSA_PUBKEY()函数和PEM_read_RSAPublicKEY()的疑惑。有时候为什么读取私钥文件用的PEM_read_RSAPrivateKey(),针对上述openssl命令生成的公钥文件,在读取其内容时用对称的PEM_read_RSAPublicKEY()接口却会报错,必须要用PEM_read_RSA_PUBKEY()才可以。
RSA PUBLIC KEY和PUBLIC KEY的两种公钥文件其存储方式是不一样的,PEM_read_RSAPublicKEY()只能读取RSA PUBLIC KEY开头形式的公钥文件(用函数生成的);而PEM_read_RSA_PUBKEY()只能读取PUBLIC KEY开头格式的公钥文件(用命令行生成),所以公钥私钥读取函数一定要跟生成的密钥对的格式对应起来。
(2)公钥加密和私钥解密, 私钥加密公钥解密 这两种都可以使用
(3)一般加密之后的字符串因为编码跟中文对应不上所以是乱码,在很多场合选择用十六进制串输出
(4)实际的工程应用中读取密钥对需要加安全验证
(5)用纯代码不依赖openssl库也是可以自己实现这些加解密算法的,搞清楚原理就行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。