`
qiujiayu
  • 浏览: 171260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何保证MD5加密结果在不同的环境下都相同

    博客分类:
  • JAVA
阅读更多

首先我们来看一下Java是如何实现MD5的:

 

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Digest {

    private static MessageDigest md5=null;

    public static String getDigest(String msg) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        if(null == md5) {
            md5=MessageDigest.getInstance("MD5");
        }
        byte[] byteArray=null;
        byteArray=msg.getBytes();
        byte[] md5Bytes=md5.digest(byteArray);
        StringBuffer hexValue=new StringBuffer();
        for(int i=0; i < md5Bytes.length; i++) {
            int val=((int)md5Bytes[i]) & 0xff;
            if(val < 16)
                hexValue.append("0");
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }
   
    public static void main(String []args) throws UnsupportedEncodingException, NoSuchAlgorithmException{
        System.out.println(getDigest("test测试"));
    }
}

 

通过上面的代码我们会发现一个问题

byteArray=msg.getBytes();

在不同的环境下获得的结果可能是不一样的,这样也造成很多MD5结果不一样。

所以要保证在不同环境下MD5结果相同那么必须使用相同的字符编码,比如:byteArray=msg.getBytes("ISO-8859-1");

 

分享到:
评论

相关推荐

    Shell编程–安全加密

    一、md5加密 1. 背景 在网络传输、设备之间转存...md5校验,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校验算法还有SHA*系列的。 在网络传输时,我们校验源文件获得其md5sum,传输完毕后,校验其目标文件

    c# 加密和解密相关代码

    本实例在实现时主要用到了MD5类的ComputeHash 方法,下面对其进行详细讲解。 MD5 类表示MD5 哈希算法的所有实现均从中继承的抽象类,该类位于System.Security.Cryptography 命名 空间下,其ComputeHash 方法有3种...

    黄淮学院\考试题\2010-2011

    C、MD5数字签名 D、MD5加密 下面___B____属于对称加密算法。 A、数字签名 B、序列算法 C、RSA算法 D、数字水印 数字签名技术是公开密钥算法的一个典型应用,在发送端,采用__B_____对要发送的信息进行数字签名。 ...

    一个完整的登陆验证窗体

    SoftConfig.ini是数据库配置文件,主程序(信息集成管理平台 MyForm)和配置程序(核心参数配置中心 SoftInitializationControl)都要用到,其中关于SQL连接密码已经通过DES算法进行加密,具体实现方法可以在主程序...

    第5章用户和组群管理.ppt

    在桌面环境下,用户必须具有超级用户权限才能管理用户和组群。可以依次单击“系统”— &gt;“管理”— &gt;“用户和组群”,启动“用户管理器”窗口。在“用户管理器”窗口中,可以创建、删除、修改用户和组群,还可以设置...

    .net2.0整站代码(c#无错 企业通用功能)

    最好在网站根目录下运行本系统 如果运行时提示以下错误: &lt;authentication mode="Windows" /&gt; 解决方法如下: 打开管理工具--Internet 信息服务, 找到放本系统的网站程序文件夹,右键选属性, 点"目录"或"主目录...

    完整登陆验证窗体+硬件绑定

    SoftConfig.ini是数据库配置文件,主程序(信息集成管理平台 MyForm)和配置程序(核心参数配置中心 SoftInitializationControl)都要用到,其中关于SQL连接密码已经通过DES算法进行加密,具体实现方法可以在主程序...

    服务器安全技术详解.pptx

    AES128/AES192 /AES256 RC2/RC4(算法本身存在漏洞, 可还原加密信息中的纯文) MD2/4/5(可以人为构造出两个 具有相同散列值的数据) SHA256 RSA1024(已有研究机构宣传破 解了本算法) RSA2048 及时跟踪研究业界最新...

    在线考试系统源码(VS2005+SQL2000)

    发一个功能比较全面的考试系统本系统开发环境是VS2005+SQL2000,是我在实习单位时独立做的一个项目,三层架构,参考了多个考试系统而开发的,题型有单选题、多选题、判断题、填空题和问答题(或者也可以说是简答题)。...

    rar压缩软件.rar

    RAR 是一个让你在命令行模式中管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复和许多其它此手册中描述的其它功能。 RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持ZIP 和其他格 式。即使...

    WINRAR5.0正式注册版

    a) 文件时间存储为协调世界时(UTC),替代以前的本地时间,这让文件在不同的时区内 的交流更直观; b) 文件名和压缩文件注释使用 UTF-8 编码。 4. RAR 5.0 恢复记录基于里德-所罗门 ( Reed-Solomon ) 错误纠正...

    多功能在线考试系统改进版源码

    7、基本上我所学的东西都在这里了,比如密码MD5加密;GridView中CheckBox全选删除、只允许选择一个;GridView鼠标移动行就变色;GridView列字数过多时省略后面的字;删除时弹出是否确定对话框;GridView模板中获取...

    Discuz! 3.1.2 商业版

    可以在极为繁忙的服务器环境下快速稳定运行 在用户资料存储中和传递中,密码全部使用 RSA-MD5 不可逆加密,有效保证论坛及用户资料的安全. 专门为脆弱页面设计了防刷新系统,自动阻止恶意访问和攻击. Discuz! 独有的...

    多功能在线考试系统改进版源码(毕业设计c#)

    7、基本上我所学的东西都在这里了,比如密码MD5加密;GridView中CheckBox全选删除、只允许选择一个;GridView鼠标移动行就变色;GridView列字数过多时省略后面的字;删除时弹出是否确定对话框;GridView模板中获取...

    P2P即时通讯源码(曾在微软设计大赛中获奖)

    进入时的帐户口令保存在注册表中,通过MD5算法加密,密钥串中包含了“用户的帐户信息+特定字符串”的方式,为破解增加了一定的难度;在语音聊天里(即通过声卡和麦克风的语音聊天),通过动态huffman编码来压缩...

    功能比较全面的考试系统(VS2005+SQL2000)

    7、基本上我所学的东西都在这里了,比如密码MD5加密;GridView中CheckBox全选删除、只允许选择一个;GridView鼠标移动行就变色;GridView列字数过多时省略后面的字;删除时弹出是否确定对话框;GridView模板中获取...

    C#经验技巧宝典1-5

    第1章 开发环境 1 1.1 Visual Studio开发环境安装与配置 2 0001 安装Visual Studio 2005开发环境须知 2 0002 配置合适的Visual Studio 2005开发环境 2 0003 设置程序代码行序号 3 0004 开发环境全屏...

    WinRAR_4.0.exe

    在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 e3 a9。 k 锁定压缩文件。任何试图改变压缩文件的命令都会被忽略。 例子: rar k final.rar l[t,b] 压缩文件的内容列表...

    中文简体压缩软件RAR 6.0

    在 Windows 中,它名为 rar.log,放在 rar.exe 文件相同的目录中。开关 -ilog 允 许改变默认的日志名。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含...

    shellcodeloader:shellcodeloader

    来自同一Shellcode的加载器的md5不同,因为生成器使用时间作为种子来随机生成128位密钥进行加密。待办事项清单环境:生成器使用MFC来实现UI,生成器和加载器模板使用C ++开发,并由VS2015静态编译。 方法:使用vs...

Global site tag (gtag.js) - Google Analytics