再次利用openssl来计算sha1, sha224, sha256, sha384, sha512
2015-01-03 21:46
1051 查看
请按照之前博文的介绍配置openssl环境。代码如下:
#include <iostream> #include <openssl/sha.h> #include <openssl/crypto.h> // OPENSSL_cleanse #pragma comment(lib, "libeay32.lib") #pragma comment(lib, "ssleay32.lib") // 在本程序中, 可以注释掉这句 using namespace std; const char *orgStr = "hello"; //待哈希的串 // 打印前, 有必要转换 void printHash(unsigned char *md, int len) { int i = 0; for (i = 0; i < len; i++) { printf("%02x", md[i]); } printf("\n"); } void myHash1() { SHA_CTX c; unsigned char md[SHA_DIGEST_LENGTH]; SHA1((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA_DIGEST_LENGTH); SHA1_Init(&c); SHA1_Update(&c, orgStr, strlen(orgStr)); SHA1_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA_DIGEST_LENGTH); } void myHash224() { SHA256_CTX c; unsigned char md[SHA224_DIGEST_LENGTH]; SHA224((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA224_DIGEST_LENGTH); SHA224_Init(&c); SHA224_Update(&c, orgStr, strlen(orgStr)); SHA224_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA224_DIGEST_LENGTH); } void myHash256() { SHA256_CTX c; unsigned char md[SHA256_DIGEST_LENGTH]; SHA256((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA256_DIGEST_LENGTH); SHA256_Init(&c); SHA256_Update(&c, orgStr, strlen(orgStr)); SHA256_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA256_DIGEST_LENGTH); } void myHash384() { SHA512_CTX c; unsigned char md[SHA384_DIGEST_LENGTH]; SHA384((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA384_DIGEST_LENGTH); SHA384_Init(&c); SHA384_Update(&c, orgStr, strlen(orgStr)); SHA384_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA384_DIGEST_LENGTH); } void myHash512() { SHA512_CTX c; unsigned char md[SHA512_DIGEST_LENGTH]; SHA512((unsigned char *)orgStr, strlen(orgStr), md); printHash(md, SHA512_DIGEST_LENGTH); SHA512_Init(&c); SHA512_Update(&c, orgStr, strlen(orgStr)); SHA512_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA512_DIGEST_LENGTH); } int main() { myHash1(); myHash224(); myHash256(); myHash384(); myHash512(); return 0; }与其他工具相比, 结果一致。
相关文章推荐
- 利用openssl来计算sha1, sha224, sha256, sha384, sha512
- 如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
- 如何利用openssl来计算md4, md5, sha1, sha256, sha384, sha512等常用哈希值?
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- C#实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- 摘要算法CRC8、CRC16、CRC32,MD2 、MD4、MD5,SHA1、SHA256、SHA384、SHA512,RIPEMD、PANAMA、TIGER、ADLER32
- C# MD5 SHA1 SHA256 SHA384 SHA512 示例 标准版 专业版 旗舰版
- 摘要算法CRC8、CRC16、CRC32,MD2 、MD4、MD5,SHA1、SHA256、SHA384、SHA512,RIPEMD、PANAMA、TIGER、ADLER32
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- C# MD5 SHA1 SHA256 SHA384 SHA512 示例 标准版 专业版 旗舰版
- C# MD5 SHA1 SHA256 SHA384 SHA512 示例 标准版 专业版 旗舰版
- 利用openssl来计算sha256哈希值
- 完整加密类(提供MD5,SHA1,SHA256,SHA512,DES加密和解密)
- 再次用openssl求SHA1
- c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法
- 如何利用openSsl来计算一个文件的md5值?
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- OPENSSL SHA256计算
- c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法