前言
本文介绍了如何使用openssl的库进行sha256开发,读者可拓展其他算法,方法类似。
一、导入Openssl资源
openssl作为开源项目,可以到官网获取源码,导入到自己的工程即可,我已经配置完成开发环境了,这里就不再赘述。(可以查看本篇教程)
二、思路
从目的出发,我们需要的只是调用openssl的库资源,至于怎么实现sha256算法应该不是现在需要考虑的,所以我们只需要构建好资源,然后调用即可。而这次实验需要的资源有如下:
库文件 : libcrypto.a(我编译的是静态库)
头文件 : sha.h
把这两个资源包含进使用的项目中即可,有必要的话,在编译的时加入这两个资源的目录。类似于我这样的指令:
gcc sha256.c -I./ -I../openssl/_install/include -L../openssl/_install/lib -lcrypto
._install是我的openssl编译安装目录
.lib就是生成的静态库的目录
.-lcrypto是库名字
三、使用库
话不多说先上代码:
#include <stdio.h>
#include <string.h>
#include "openssl/sha.h"
#include "sha256.h"
//unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md);
int mysha256(const char *readstr, unsigned char *md)
{
if (SHA256((unsigned char*)readstr, strlen(readstr), md) == NULL) {
printf("sha256 erro\n");
return -1;
}
return 0;