初学MD5加密

1、创建一个工具类

import java.security.MessageDigest;  

/**
 *
* 类名称:CipherUtil
* 类描述: 对数据进行16位的Md5加密
* 创建人:Jxufe HeHaiYang
* 创建时间:2015-1-19 下午06:33:26
* 修改备注:
* @version
 */
public class CipherUtil{  

    //十六进制下数字到字符的映射数组
    private final static String[] hexDigits = {"0", "1", "2", "3", "4",
        "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};  

    /**
     *
    * 方法名: generatePassword
    * 方法作用: TODO 对字符串进行加密
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-20 下午09:58:05
    * @param @param inputString
    * @param @return
    * 返回值类型: String
    * @throws
     */
    public static String generatePassword(String inputString){
        return encodeByMD5(inputString);
    }  

    /**
     *
    * 方法名: validatePassword
    * 方法作用: TODO 验证输入的密码是否正确
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-20 下午09:57:52
    * @param @param password
    * @param @param inputString
    * @param @return
    * 返回值类型: boolean
    * @throws
     */
    public static boolean validatePassword(String password, String inputString){
        if(password.equals(encodeByMD5(inputString))){
            return true;
        } else{
            return false;
        }
    }
    /**
     *
    * 方法名: encodeByMD5
    * 方法作用: TODO 对字符串进行MD5加密
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-20 下午09:57:38
    * @param @param originString
    * @param @return
    * 返回值类型: String
    * @throws
     */
    private static String encodeByMD5(String originString){
        if (originString != null){
            try{
                //创建具有指定算法名称的信息摘要
                MessageDigest md = MessageDigest.getInstance("MD5");
                //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
                byte[] results = md.digest(originString.getBytes());
                //将得到的字节数组变成字符串返回
                String resultString = byteArrayToHexString(results);
                return resultString.toUpperCase();
            } catch(Exception ex){
                ex.printStackTrace();
            }
        }
        return null;
    }  

    /**
     *
    * 方法名: byteArrayToHexString
    * 方法作用: TODO 转换字节数组为十六进制字符串
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-20 下午09:57:29
    * @param @param b
    * @param @return
    * 返回值类型: String
    * @throws
     */
    private static String byteArrayToHexString(byte[] b){
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < b.length; i++){
            resultSb.append(byteToHexString(b[i]));
        }
        return resultSb.toString();
    }  

    /**
     *
    * 方法名: byteToHexString
    * 方法作用: TODO 将一个字节转化成十六进制形式的字符串
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-20 下午09:57:17
    * @param @param b
    * @param @return
    * 返回值类型: String
    * @throws
     */
    private static String byteToHexString(byte b){
        int n = b;
        if (n < 0)
            n = 256 + n;
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }
}

MD5 16位加密工具类

2、调用方法

  MD5是单向加密算法,只可进行加密。

  使用时,可将输入字符串进行MD5加密,再与密码比对。

    CipherUtil cipher = new CipherUtil();
    String pwd = cipher.generatePassword(password); 
时间: 2024-10-23 02:52:48

初学MD5加密的相关文章

MD5加密和RSA加密

1.MD5加密  MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),MD5算法的使用不需要支付任何版权费用. MD5的功能:     ①.输入任意长度的信息,经过处理,输出为128位的信息(数字指纹):    ②.不同的输入得到的不同的结果(唯一性):    ③.根据128位的输出结果不可能反推出输入的信息(不可逆),也就是只能加密,不能解密:  MD5的用途:     1.防止被篡改:    1)比如发送一个电子文档,发送前,我先得到MD5的

【iOS】MD5加密与网络数据安全

在做网络应用程序的时候, 时时刻刻要保证用户数据的安全, 因此要加密. MD5算法在国内用的很多. MD5算法的特点: *同样的数据加密结果是一样的.(32个字符) *不可逆的.(不能逆向解密) *可用于文件校验/指纹识别. MD5算法是公开的,iOS中已经包装好了MD5算法. 可以将其写成字符串的分类: - (NSString *)md5String { const char *string = self.UTF8String; int length = (int)strlen(string)

callback和spring的MD5加密

在javaweb中今天学习到了callback,即回调的意思,刚开始没听懂后面就明白了.回调的意思就是返回来调取页面. 举个例子:当我们访问淘宝网站的时候,当点击购物车的时候,这个时候提示用户登录用户名和密码,登录成功后,会返回到购物车的页面.这就是回调. 它不返回淘宝的首页,而是返回到我们点击的内容所在页面. 在写接口的时候,因为接口是供其他程序调用的,有可能会用到回调的功能,所以一般接口就要求将内容写的全面些.对callback进行包装下. sping的MD5加密: 之前对注册密码的加密是采

iOS,一行代码进行RSA、DES 、AES、MD5加密、解密

最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,服务器也会返回数据,服务器是用Java开发的,客户端要同时支持多平台(Android.iOS),在处理iOS的数据加密的时候遇到了一些问题.起初采取的方案是DES加密,老大说DES加密是对称的,网络抓包加上反编译可能会被破解,故采取RSA方式加密.RSA加密时需要公钥和私钥,客户端保存公钥加密数据,服务器保存私钥解密数据.(iOS端公钥加密私钥解密.java端公钥加密私钥解密,java端私钥加密公钥解密都容易做到,iOS不

C# 字符串md5加密成16位和32位

#region md5加密 /// <summary> /// MD5 16位加密 加密后密码为小写 /// </summary> /// <param name="ConvertString"></param> /// <returns></returns> private string GetMd5Str16(string ConvertString) { try { using (MD5CryptoServi

[android] 手机卫士保存密码时进行md5加密

一般的手机没有root权限,进不去data/data目录,当手机刷机了后,拥有root权限,就可以进入data/data目录,查看我们保存的密码文件,因此我们需要对存入的密码进行MD5加密 获取MessageDigest信息摘要器对象,调用MessageDigest.getInstance(“md5”),参数:规则 调用MessageDigest对象的digest(bytes)方法,得到加密的byte[] 数组,参数:byte[] 数组,调用String对象的getBytes()方法获取到字节数

4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托

MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 string s = "123"; 4 Response.Write(getMd5(s)); 5 } 6 public string getMd5(string str) 7 { 8 MD5 md5 = MD5.Create();//MD5抽象类无法实例化 实例化该方法 9 byt

终于实现VB.NET MD5加密

VB.NET MD5加密想着这个功能很普遍,就在网上找了一个代码 '对strSource进行转码,然后再变成大写,再进行加密 Function MD51(ByVal strSource As String, ByVal Code As Int16) As String Dim dataToHash As Byte() dataToHash = (New System.Text.UTF8Encoding).GetBytes(UCase(URLEncode(strSource))) Dim hash

MD5加密和sha加密

sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文信息A和识别码B之间同时满足以下条件: 1.对于任意两条不同的明文信息A1.A2,其识别码B1.B2都不相同. 2.无法通过逆向算法由识别码B倒推出明文信息A. MOONCRM的用户密码采用SHA1加密存储,即服务器上存储的只是 由用户密码生成的识别码,而用户密码本身并没有存储在服务器上.用户输入登