MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用
数字签名软件签署私人
密钥前被"
压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的
十六进制数字串)。除了MD5以外,其中比较有名的还有
sha-1、
RIPEMD以及Haval等。
Android MD5加密算与J2SE平台一模一样,因为Android 平台支持 Java.security.MessageDigest这个包。实际上与J2SE平台一模一样。
算法签名:
- String getMD5(String val) throws NoSuchAlgorithmException
输入一个String(需要加密的文本),得到一个加密输出String(加密后的文本
)
- package com.tencent.utils;
-
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
-
-
-
-
-
- public class MD5 {
-
- public static String getMD5(String val) throws NoSuchAlgorithmException{
- MessageDigest md5 = MessageDigest.getInstance("MD5");
- md5.update(val.getBytes());
- byte[] m = md5.digest();
- return getString(m);
- }
- private static String getString(byte[] b){
- StringBuffer sb = new StringBuffer();
- for(int i = 0; i < b.length; i ++){
- sb.append(b[i]);
- }
- return sb.toString();
- }
- }