`
jimmy9495
  • 浏览: 300523 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Md5加密错误问题

阅读更多
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加密.zip

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的数字摘要,这...然而,由于MD5的安全性问题,对于存储高度敏感信息如密码时,建议使用更安全的加密算法,如SHA-256或bcrypt。

    PB9.0调用MD5加密示例

    在实际项目中,MD5加密可以应用于密码存储、文件校验等多个场景,但需要注意的是,由于MD5已知的碰撞攻击问题,现在对于安全性要求极高的场景,MD5已经不再被视为安全的加密方式,常常会被SHA系列或其他更强的哈希...

    jquery实现MD5加密

    在前端开发中,有时候为了增强数据安全性,可能需要在客户端对敏感信息进行MD5加密。jQuery是一个流行的JavaScript库,虽然它主要用于DOM操作和事件处理,但通过扩展,我们可以在jQuery环境下实现MD5加密。 首先,...

    单片机MD5加密源代码

    综上所述,"单片机MD5加密源代码"提供的是一套适用于单片机环境的MD5实现,包括C语言实现的源代码和对应的头文件,能够帮助开发者在诸如瑞萨、STM和上海东软等芯片上实现数据的MD5加密和完整性校验,提高系统的安全...

    esp8266 MD5的加密

    - 数据验证:比如,下载固件或资源文件时,可以先计算服务器端文件的MD5值,下载后再本地计算一次,对比两者是否一致,以判断下载过程中是否有错误。 - 密码存储:尽管MD5因为安全性问题已不再推荐用于密码存储,...

    易语言md5加密DLL

    在本主题中,我们关注的是易语言中的MD5加密功能,具体表现为一个名为"易语言md5加密DLL"的动态链接库(DLL)文件。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定...

    Delphi7测试md5加密的例子

    3. **MD5加密**: 使用库提供的MD5函数进行加密。比如,`dcuMD5`库可能提供了一个名为`CalcMD5`的函数,接受一个字符串参数,返回一个表示MD5值的32位十六进制字符串。示例代码如下: ```delphi uses dcuMD5; ...

    md5加密算法的两种方法

    MD5_simple可能更快,但可能缺乏错误处理和其他附加功能。 - **易用性**:类的API设计是否直观,使用起来是否方便。 - **安全性**:尽管MD5在安全性上已不再被视为最佳实践,但它仍可用于非安全目的的数据校验。如果...

    delphi MD5加密的用法

    在Delphi中实现MD5加密,我们可以使用第三方库,如`dcutils`或`md5unit`等。以下是一个基于`md5unit`库的简单示例,演示如何在Delphi中使用MD5进行加密: 首先,你需要将`md5unit`库导入到你的项目中。这个库包含了...

    c#,.net md5加密解密技术

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密。在C#和.NET环境中,MD5加密解密技术是网络安全领域的一个基础概念,用于确保数据的完整性和安全性。本文将详细介绍MD5...

    MD5加密+签名算法Sign生成 工具类

    MD5加密和签名算法在IT领域中扮演着重要的角色,特别是在数据安全、用户验证和通信完整性方面。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转换为固定长度的摘要,通常为...

    JAVA中MD5加密

    在`encrypt`这个文件夹中,可能包含了一些关于Java MD5加密的示例代码或者测试用例,你可以进一步研究其中的内容,加深对MD5加密的理解和应用。通过实际操作和分析这些代码,你将能够更好地掌握如何在实际项目中实现...

    MD5加密技术

    本java工程用于研究MD5加密技术。 本工程编码方式:UTF-8 说明:采用Java自带的加密...进而实现自己的加密,如果问题成立,那么就意味着全球MD5加密hex方法是相同的且使用的加密类型(algorithmType)也是相同的。

    js的md5加密字串工具类

    在JavaScript中,MD5被用来进行字符串加密,通常用于生成文件校验码、保护密码安全或者在不安全的环境中传递数据时确保数据完整性。 在您提供的压缩包中,"js的md5加密字串工具类"很可能包含一个或多个JavaScript...

    易语言源码易语言md5加密DLL源码.rar

    在易语言中实现MD5加密,可以创建一个动态链接库(DLL)以供其他程序调用。 这篇源码提供了易语言中实现MD5加密功能的详细过程。DLL是一种可执行文件格式,它包含可供其他程序调用的函数。通过创建DLL,开发者可以...

    md5加密12位的哦

    在压缩包中的"md5"文件可能包含了实现12位MD5加密的源代码,但请注意,这很可能不是标准的MD5算法,而可能是某种简化的实现或者错误的理解。如果要学习或使用MD5,建议参考标准的32位MD5实现,确保理解和应用在合适...

    活字格-MD5加密.zip

    5. **"PluginConfig.json"**:这是一个JSON配置文件,很可能包含了关于MD5加密插件的设置和参数,如默认行为、加密选项、错误处理等。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成...

    C#实现数据的MD5加密数据

    解压并查看这些文件,可以帮助你理解如何在实际项目中使用MD5加密,并可能提供一些优化或错误处理的策略。 总的来说,MD5加密在C#编程中是一个基础但重要的概念,理解其工作原理和使用方式对于提升数据安全性的认识...

    PB可用md5加密、des加解密,Base64编码DLL、附PB11.5调用例程

    意味着这个更新的资源增加了Base64编码的支持,而且所有这些功能(MD5、DES、Base64)都有专门针对Unicode的调用声明,这意味着它们能很好地支持多语言环境,不会因为字符串编码问题导致错误。 压缩包内的文件名列...

    pb9、pb10、MD5加密 纯PB代码实现

    标题中的“pb9、pb10、MD5加密 纯PB代码实现”指的是PowerBuilder 9和10版本中对数据进行MD5加密的纯PowerBuilder(PB)代码实践。PowerBuilder是一种流行的可视化的面向对象的编程工具,主要用于开发数据库应用程序...

Global site tag (gtag.js) - Google Analytics