c语言 sha1 小写输出,C语言实现MD5/SHA1/SHA256/SHA512-Go语言中文社区

哈希函数是我们做校验时经常会用到的密码学工具,目前常用的工具有MD5、SHA1、SHA256、SHA512等。其中MD5已经被证实不安全,目前只能作为一种辅助的校验手段,而不能防篡改。下面介绍如何使用mbedTLS协议栈中的hash代码生成上述4种哈希摘要。

和上一篇AES一样,也是新建Visual Studio  C工程,添加头文件mbedtls文件夹到工程目录下。然后是添加C文件,这次需要用到4个哈希计算,故添MD5.c、SHA1.c、SHA256.c、SHA512.c四个文件。

在主函数里添加简单demo,分别对“Hello, world!”进行哈希摘要计算:

#include "mbedtls/config.h"

#include "mbedtls/platform.h"

#include

#define mbedtls_printf printf

#define MD5 0

#define SHA1 1

#define SHA256 2

#define SHA512 3

#define MODE SHA512

#include "mbedtls/md5.h"

#include"mbedtls/sha1.h"

#include"mbedtls/sha256.h"

#include"mbedtls/sha512.h"

int main(void)

{

int counter = 0;

if (MODE == MD5)

{

unsigned char digest[16];

char str[] = "Hello, world!";

mbedtls_md5((unsigned char *)str, 13, digest);

for (;;)

{

counter++;

}

}

if (MODE == SHA1)

{

unsigned char digest[20];

char str[] = "Hello, world!";

mbedtls_sha1((unsigned char *)str, 13, digest);

for (;;)

{

counter++;

}

}

if (MODE == SHA256)

{

unsigned char digest[32];

char str[] = "Hello, world!";

mbedtls_sha256((unsigned char *)str, 13, digest, 0);

for (;;)

{

counter++;

}

}

if (MODE == SHA512)

{

unsigned char digest[64];

char str[] = "Hello, world!";

mbedtls_sha512((unsigned char *)str, 13, digest, 0);

for (;;)

{

counter++;

}

}

return 0;

}

f93c0595c13cda5a6945a10fc47e7168.png

经过验证,该哈希函数能够提供正确的摘要值 :)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值