`
qiujiayu
  • 浏览: 170455 次
  • 性别: 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算法进行加密,具体实现方法可以在主程序...

    .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...

    C程序范例宝典(基础代码详解)

    实例286 MD5加密 412 实例287 RSA加密 419 实例288 DES加密 420 实例289 RC4加密 424 实例290 SHA1加密 427 实例291 恺撒加密 432 第11章 游戏 435 实例292 猜数字游戏 436 实例293 24点游戏 438...

Global site tag (gtag.js) - Google Analytics