用户的密码是以MD5值(或类似的其它算法)的方式保存的,MD5将任意长度的“字节串”变换成一个128bit的大整数,它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩“成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数),也无法将一个MD5的值变换回原始的字符串,使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,系统是把用户输入的密码计算成MD5值,就是把一个任意长度的字节串变换成一定长的大整数,并且它是一个不可逆的字符串变换算法。
md5 是什么文件用什么文件打开
就是一种加密算发,用文本查看文件一般就可以打开。
md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。
它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩“成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
扩展资料:
应用
用于密码管理
当我们需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。
电子签名
MD5 算法还可以作为一种电子签名的方法来使用,使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,借助这个“数字指纹”,通过检查文件前后 MD5 值是否发生了改变,就可以知道源文件是否被改动。
参考资料来源:百度百科-MD5
java如何算md5码
可以利用JDK自带的MD5来加密。
public class MD5Util { public final static String MD5(String s) { char hexDigits={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’}; try { byte btInput = s.getBytes(); // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance(“MD5“); // 使用指定的字节更新摘要 mdInst.update(btInput); // 获得密文 byte md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 int j = md.length; char str = new char[j * 2]; int k = 0; for (int i = 0; i 《 j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 》》》 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { e.printStackTrace(); return null; } } public static void main(String args) { System.out.println(MD5Util.MD5(“20121221“)); System.out.println(MD5Util.MD5(“加密“)); }}请教MD5算法 用C语言实现
#include 《stdio.h》#include 《stdlib.h》#include 《string.h》#if defined(__APPLE__)# define COMMON_DIGEST_FOR_OPENSSL# include 《CommonCrypto/CommonDigest.h》# define SHA1 CC_SHA1#else# include 《openssl/md5.h》#endif// 这是我自己写的函数,用于计算MD5// 参数 str:要转换的字符串// 参数 lengthL: 字符串的长度 可以用 strlen(str) 直接获取参数str的长度// 返回值:MD5字符串char *str2md5(const char * str, int length) { int n; MD5_CTX c; unsigned char digest; char *out = (char*)malloc(33); MD5_Init(&c); while (length 》 0) { if (length 》 512) { MD5_Update(&c, str, 512); } else { MD5_Update(&c, str, length); } length -= 512; str += 512; } MD5_Final(digest, &c); for (n = 0; n 《 16; ++n) { snprintf(&(out[n*2]), 16*2, “%02x“, (unsigned int)digest[n]); } return out;} int main(int argc, char **argv) { char *output = str2md5(“hello“, strlen(“hello“)); printf(“%s\n“, output); // 上面会输出 hello的MD5字符串: // 5d41402abc4b2a76b9719d911017c592 free(output); return 0; }
md5算法是什么
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。 Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。 MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。 MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。 MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的, 用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。