如何对字符串进行MD5加密,用C语言实现,给出源代码和加密函数
/*四个32bits数,用于存放最终计算得到的消息摘要.当消息长度>512bits时,也用于存放每个512bits的中间结果*/UINT4 state[4];/*存储原始信息的bits数长度,不包括填充的bits,最长为2^64 bits*/UINT4 count[2];/*存放输入的信息的缓冲区,512bits*/unsigned char buffer[64];} MD5_CTX;static void MD5Transform(UINT4[4], unsigned char[64]);static void Encode(unsigned char *, UINT4 *, unsigned int);static void Decode(UINT4 *, unsigned char *, unsigned int);/*用于bits填充的缓冲区,当欲加密的信息的bits数被512除其余数为448时,需要填充的bits的最大值为512=64*8*/static unsigned char PADDING[64] = {0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};/*接下来的这几个宏定义是md5算法规定的,就是对信息进行md5加密都要做的运算*/#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))#define H(x, y, z) ((x) ^ (y) ^ (z))#define I(x, y, z) ((y) ^ ((x) | (~z)))#define ROTATE_LEFT(x, n) (((x) > (32-(n))))#define FF(a, b, c, d, x, s, ac) {\(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac);\(a) = ROTATE_LEFT ((a), (s));\(a) += (b);\}#define GG(a, b, c, d, x, s, ac) {\(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac);\(a) = ROTATE_LEFT ((a), (s));\(a) += (b);\}#define HH(a, b, c, d, x, s, ac) {\(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac);\(a) = ROTATE_LEFT ((a), (s));\(a) += (b);\}#define II(a, b, c, d, x, s, ac) {\(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac);\
原程序很长,这里容不下,请到以下页面查看:
http://tools.ietf.org/html/rfc1321
MD5 DES 的加密是什么意思?
* getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串 * 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的. *\/ public String getMD5ofStr(String inbuf) { md5Init(); md5Update(inbuf.getBytes(), inbuf.length()); md5Final(); digestHexStr = ""; for (int i ...
IDEA加密算法的C语言实现
目前 AES 标准的一个实现是 Rijndael 算法;BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。比如说,MD5,你在一些比较正式而严格的网站下的东西一般都会有MD5值给出,如安全焦点的软件工具,每个都有MD5。3、例程:include<stdio...
C#使用Md5加密转码怎么还原
MD5 加密是不可逆的..也就是说.你采用MD5加密后 是无法还原的..而且MD5加密不需要密钥.如果你需要使用有加密密钥,和可解密的加密方式.可以使用AES加密方式 \/\/\/ \/\/\/ AES加密 \/\/\/ \/\/\/ \/\/\/ \/\/\/ <returns><\/returns> public static string Encrypt(string toEncrypt, s...
JSP MD5加密解密问题。
importjava.security.MessageDigest;publicclassMD5{\/***将传入的字符串数据进行MD5加密**@parampassword待加密数据*@returnString加密后的字符串*@exception*\/publicstati... import java.security.MessageDigest;public class MD5 {\/** * 将传入的字符串数据进行MD5加密 * * @param password 待加密数据 * @...
md5码是如何生成的,什么原理
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将...
MySQL中MD5加密的使用方法mysql中md5写法
MD5加密是一种常用的密码加密算法,其特点是不可逆和唯一性。在MySQL中,可以使用MD5函数对数据进行加密,以保障数据的安全性。本文将介绍MySQL中MD5加密的使用方法,并提供相关代码示例。1. MD5加密函数介绍 MySQL中的MD5函数是一个内置函数,其语法格式如下:MD5(str)其中,str为待加密的字符串,函数...
字符密码怎么设置啊
还有一种是掩码破解:知道密码中的部分字符,用暴力破解或字典破解来破剩余的部分上面密码破解过程中,如果用两台电脑分段破解可以减少破解时间。再说一下什么是加密,比如MD5,是用一个函数将需要加密的“字符串”转换成一个长度为128bit长的字符串,因为函数不可逆,所以即使你知道加密后的字符也不能推出原“字符串”。
php,变量的md5加密
2013-08-21 php中的MD5加密 1 2014-01-28 PHP MD5加密问题 7 2014-11-07 php md5加密 最多多少位 2 2016-08-15 php中的md5加密 2015-09-13 使用php来进行MD5加密 2 2012-05-27 PHP的MD5加密怎么写 2011-09-13 php md5()加密问题 1 更多类似问题 > md5...
c语言怎么调用dll文件?
4、继续输入(路径也要随机应变)link \/DLL \/out:E:\\VCfile\\DLLTest\\source\\add.dll E:\\VCfile\\DLLTest\\source\\add.obj。5、新建源文件call_dll.c或.cpp放到DLLTest文件夹,同时add.dll也复制过来。6、编译,连接运行出现个5。调用成功。注意事项:C语言能以简易的方式编译、处理低级存储器。C...
电脑所有后缀为.rar、.doc、.xls、.jpg、.dwg文件均被添加后缀._CRYPT...
更详细的资料请参考 UNIX Manual (man) 中的 crypt。在一些较新的 UNIX 版本中,除了 DES 之外还提供了其它的加密模块,如 MD5。甚至有些系统还用 MD5 取代 DES。在 salt 参数还有一些变化,端看传给 salt 参数的字符串长度而定:CRYPT_STD_DES - 标准的 DES 编码,输入 2 字符的 salt。CRYPT...