import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import cn.mpaike.interfaces.util.file.DigestUtil;
public class MD5 {
private MD5() {}
public final static String getMessageDigest(byte[] buffer) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
try {
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(buffer);
byte[] md = mdTemp.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) {
return null;
}
}
public static void main(String[] args) {
String key = "8798798da测试中文加密";
System.out.println("待加密字符串:" + key);
String signB = MD5.getMessageDigest(key.getBytes()).toUpperCase();
System.out.println("加密结果:" + sign);
}
}
同一个加密方法,在main方法里执行结果是对的,启动tomcat在action中调用就是错误的。
同样在tomcat执行时输出的key也是一样完全一样的,偏偏加密完成后结果跟main方法里不一样。(文件和tomcat里的设置都是utf8)
最后只能改成
String sign="";
try {
sign = MD5.getMessageDigest(key.getBytes("UTF-8")).toUpperCase();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这样处理后才保持了一致。
安卓工程里,这段代码又是对的。。。
神奇的问题,这原因真是百思不得其解。。。在此Mark
分享到:
相关推荐
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的数字摘要,这...然而,由于MD5的安全性问题,对于存储高度敏感信息如密码时,建议使用更安全的加密算法,如SHA-256或bcrypt。
在实际项目中,MD5加密可以应用于密码存储、文件校验等多个场景,但需要注意的是,由于MD5已知的碰撞攻击问题,现在对于安全性要求极高的场景,MD5已经不再被视为安全的加密方式,常常会被SHA系列或其他更强的哈希...
在前端开发中,有时候为了增强数据安全性,可能需要在客户端对敏感信息进行MD5加密。jQuery是一个流行的JavaScript库,虽然它主要用于DOM操作和事件处理,但通过扩展,我们可以在jQuery环境下实现MD5加密。 首先,...
综上所述,"单片机MD5加密源代码"提供的是一套适用于单片机环境的MD5实现,包括C语言实现的源代码和对应的头文件,能够帮助开发者在诸如瑞萨、STM和上海东软等芯片上实现数据的MD5加密和完整性校验,提高系统的安全...
- 数据验证:比如,下载固件或资源文件时,可以先计算服务器端文件的MD5值,下载后再本地计算一次,对比两者是否一致,以判断下载过程中是否有错误。 - 密码存储:尽管MD5因为安全性问题已不再推荐用于密码存储,...
在本主题中,我们关注的是易语言中的MD5加密功能,具体表现为一个名为"易语言md5加密DLL"的动态链接库(DLL)文件。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定...
3. **MD5加密**: 使用库提供的MD5函数进行加密。比如,`dcuMD5`库可能提供了一个名为`CalcMD5`的函数,接受一个字符串参数,返回一个表示MD5值的32位十六进制字符串。示例代码如下: ```delphi uses dcuMD5; ...
MD5_simple可能更快,但可能缺乏错误处理和其他附加功能。 - **易用性**:类的API设计是否直观,使用起来是否方便。 - **安全性**:尽管MD5在安全性上已不再被视为最佳实践,但它仍可用于非安全目的的数据校验。如果...
在Delphi中实现MD5加密,我们可以使用第三方库,如`dcutils`或`md5unit`等。以下是一个基于`md5unit`库的简单示例,演示如何在Delphi中使用MD5进行加密: 首先,你需要将`md5unit`库导入到你的项目中。这个库包含了...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密。在C#和.NET环境中,MD5加密解密技术是网络安全领域的一个基础概念,用于确保数据的完整性和安全性。本文将详细介绍MD5...
MD5加密和签名算法在IT领域中扮演着重要的角色,特别是在数据安全、用户验证和通信完整性方面。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转换为固定长度的摘要,通常为...
在`encrypt`这个文件夹中,可能包含了一些关于Java MD5加密的示例代码或者测试用例,你可以进一步研究其中的内容,加深对MD5加密的理解和应用。通过实际操作和分析这些代码,你将能够更好地掌握如何在实际项目中实现...
本java工程用于研究MD5加密技术。 本工程编码方式:UTF-8 说明:采用Java自带的加密...进而实现自己的加密,如果问题成立,那么就意味着全球MD5加密hex方法是相同的且使用的加密类型(algorithmType)也是相同的。
在JavaScript中,MD5被用来进行字符串加密,通常用于生成文件校验码、保护密码安全或者在不安全的环境中传递数据时确保数据完整性。 在您提供的压缩包中,"js的md5加密字串工具类"很可能包含一个或多个JavaScript...
在易语言中实现MD5加密,可以创建一个动态链接库(DLL)以供其他程序调用。 这篇源码提供了易语言中实现MD5加密功能的详细过程。DLL是一种可执行文件格式,它包含可供其他程序调用的函数。通过创建DLL,开发者可以...
在压缩包中的"md5"文件可能包含了实现12位MD5加密的源代码,但请注意,这很可能不是标准的MD5算法,而可能是某种简化的实现或者错误的理解。如果要学习或使用MD5,建议参考标准的32位MD5实现,确保理解和应用在合适...
5. **"PluginConfig.json"**:这是一个JSON配置文件,很可能包含了关于MD5加密插件的设置和参数,如默认行为、加密选项、错误处理等。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成...
解压并查看这些文件,可以帮助你理解如何在实际项目中使用MD5加密,并可能提供一些优化或错误处理的策略。 总的来说,MD5加密在C#编程中是一个基础但重要的概念,理解其工作原理和使用方式对于提升数据安全性的认识...
意味着这个更新的资源增加了Base64编码的支持,而且所有这些功能(MD5、DES、Base64)都有专门针对Unicode的调用声明,这意味着它们能很好地支持多语言环境,不会因为字符串编码问题导致错误。 压缩包内的文件名列...
标题中的“pb9、pb10、MD5加密 纯PB代码实现”指的是PowerBuilder 9和10版本中对数据进行MD5加密的纯PowerBuilder(PB)代码实践。PowerBuilder是一种流行的可视化的面向对象的编程工具,主要用于开发数据库应用程序...