`
阅读更多

此文为复合型文章:引用+原创

-----------

1.C# MD5 与 java MD5 生成的字符串不一致问题

C# 源码

 

查了下C#的api ,System.Text.UnicodeEncoding.Unicode.GetBytes(s)用的是utf-16 little-endian编码方式。

 

java 源码

 

public static String getMD5(String str, String encoding) throws Exception {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(str.getBytes(encoding));

byte[] result = md.digest();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < result.length; i++) {

int val = result[i] & 0xff;

sb.append(Integer.toHexString(val));

}

return sb.toString();

}

 

运行结果

4b98b56b759916acc26268f2792a123

4b98b56b759916acc26268f2792a123

 如果还是有问题,参考这个链接应该就可以解决了:

http://bbs.csdn.net/topics/370127895

 

2.其他的MD5加密方式

public static String md5(String string)
 {
  char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
  'e', 'f' };
  try {
   byte[] bytes = string.getBytes();
   MessageDigest messageDigest = MessageDigest.getInstance("MD5");
   messageDigest.update(bytes);
   byte[] updateBytes = messageDigest.digest();
   int len = updateBytes.length;
   char myChar[] = new char[len * 2];
   int k = 0;
   for (int i = 0; i < len; i++) {
    byte byte0 = updateBytes[i];
    myChar[k++] = hexDigits[byte0 >>> 4 & 0x0f];
    myChar[k++] = hexDigits[byte0 & 0x0f];
   }
  return new String(myChar);
  } catch (Exception e) {
  return null;
  }
 } 

 

3.MD5解密

http://blog.csdn.net/yaba213/article/details/5605111

   写得非常好!!

 

4.附说Java加密与解密

基本的单向加密算法:

  • BASE64 严格地说,属于编码格式,而非加密算法
  • MD5(Message Digest algorithm 5,信息摘要算法)
  • SHA(Secure Hash Algorithm,安全散列算法)
  • HMAC(Hash Message Authentication Code,散列消息鉴别码)

复杂的对称加密(DES、PBE)、非对称加密算法:

  • DES(Data Encryption Standard,数据加密算法)
  • PBE(Password-based encryption,基于密码验证)
  • RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
  • DH(Diffie-Hellman算法,密钥一致协议)
  • DSA(Digital Signature Algorithm,数字签名)
  • ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)

 

分享到:
评论

相关推荐

    md5tools_md5_md5tools_

    MD5助手是一款强大的实用工具,专门用于生成和比对文件的MD5哈希值。MD5,全称为Message-Digest Algorithm 5,是由Ron Rivest在1991年设计的一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常以32...

    MD5编码、MD5加密解密demo

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的输入数据转换成固定长度的128位(16字节)摘要信息,通常表现为32位的十六进制数字。这个过程被称为MD5编码或MD5散列。在信息安全...

    MD5 C++实现 对文件计算MD5值

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的输入数据转换成一个固定长度的输出,通常为128位,以16进制表示,即32个字符。在C++中实现MD5算法,主要是为了获取文件的数字指纹,...

    md5加解密c++md5加解密c++

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,由计算机科学家Ronald Rivest在1991年设计。它能够将任意长度的数据转换为固定长度的128位(16字节)的摘要,通常以32位的十六进制数表示。在C++中实现...

    MD5 md5 md5加密

    `MD5.java`可能会包含一个`MD5`类,其中包含了计算MD5哈希的方法,而`MD5State.java`则可能封装了MD5算法中的状态变量和更新状态的逻辑,使得算法的实现更加模块化。 总的来说,MD5是一种曾经广泛应用于数据校验的...

    md5加密,原生js使用md5加密

    MD5(Message-Digest Algorithm 5)是一种广泛用于数据安全的哈希函数,它能够将任意长度的数据转化为固定长度的128位(通常用32位的十六进制数字表示)摘要。在前端开发中,MD5常用于对敏感信息如用户密码进行加密...

    matlab实现md5算法,md5算法详解,matlab

    总结来说,MATLAB实现MD5算法涉及的主要知识点包括:MD5算法的背景和用途,哈希函数的基本概念,MD5算法的四轮循环结构,FF、GG、HH、II四个非线性函数的作用,以及MATLAB中位运算和数组操作的应用。通过学习这个...

    MD5加密解密生成器

    md5、md5(md5($pass))、md5(md5(md5($pass)))、MD5(MD5($pass)) MD5(MD5(MD5($pass)))、sha1、md4、mysql、mysql5、md5($pass.$salt) md5($salt.$pass)、md5(md5($pass)。$salt)、sha1...

    SparkMD5获取文件md5

    在IT领域,尤其是在数据处理和安全验证中,计算文件的MD5(Message-Digest Algorithm 5)哈希值是一项常用的技术。MD5是一种广泛使用的加密散列函数,它能够将任意大小的输入(也称为“预映射”或“消息”)转化为一...

    PB9.0调用MD5加密示例,md5加密方法过程,PowerBuilder

    MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,它产生一个128位(16字节)的散列值,通常以32位十六进制数字的形式表示。MD5常用于验证数据的完整性和保密性,比如在存储密码时。本篇将详细讲解...

    MD5 digest 算法

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,由计算机科学家Ronald Rivest在1991年设计。它能够将任意长度的数据转化为一个固定长度的摘要值,通常是一个128位的二进制数,通常用32个十六进制数字...

    3d max md5mesh md5anim 导入 导出 插件

    在3D建模和游戏开发领域,MD5格式(Mighty Death Pixel)是一种常见的用于存储模型和动画数据的文件格式,尤其在基于id Software的Doom III引擎的游戏开发中广泛应用。这个格式允许开发者将3D模型和它们的关联动画...

    MD5转换小工具

    MD5(Message-Digest Algorithm 5)是一种广泛用于数据完整性校验和安全散列的算法。它由美国麻省理工学院的Ronald Rivest在1991年设计,主要用于确保数据在传输或存储过程中没有被篡改。MD5算法会将任意长度的数据...

    md5检测工具

    essage Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and ...

    MD5加密算法的JS文件md5-min.js

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,由计算机科学家Ronald Rivest在1991年设计。它能够将任意长度的数据转换为固定长度的输出,通常是一个128位的二进制数,通常用32个十六进制数字表示。...

    C++ 计算字符串md5_16和md5_32

    在IT领域,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它可以将任意长度的数据转化为固定长度的128位(16字节)摘要,通常以32位十六进制数的形式表示。这个过程是不可逆的,也就是说,从MD5摘要...

    javascript获取图片的md5

    在IT行业中,尤其是在网络安全和数据处理领域,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,用于产生一个固定长度的数字摘要,通常为32位的十六进制字符串。这个摘要是对原始数据的一种加密表示,...

    前端加密插件md5.js

    前端加密插件md5.js MD5.js是对前端的明文数据进行MD5加密方式。是一个前端加密插件。 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的...

    批量MD5加密工具

    MD5(Message-Digest Algorithm 5)是一种广泛应用于信息安全领域的哈希函数,由计算机科学家Ronald Rivest在1991年设计。它能够将任意长度的信息转化为一个固定长度的摘要,通常为32位的十六进制数字,这个过程被...

    windows下的md5sum

    MD5SUM工具是一种广泛使用的哈希函数,主要目的是为了检验文件的完整性和一致性。它在Windows和Linux等操作系统中都得到了应用。标题“windows下的md5sum”表明我们将讨论的是如何在Windows环境中使用这个功能强大的...

Global site tag (gtag.js) - Google Analytics