MessageDigest简介和android密码加密算法
2016-05-05 08:34
405 查看
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。 例如,下面给出一个例子,用来通过输入一个String,输出一个加密之后的String。用的是MD5算法。
package md; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 对外提供getMD5(String)方法 * @author wangcao * */ 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(); } public static void main(String[] args) throws NoSuchAlgorithmException { String s="wangcao"; System.out.println(getMD5(s)); } }
执行结果:
-64-14-112-1-97274-125-32-95689112-57-9117
代码分析:
import java.security.MessageDigest;
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
import java.security.NoSuchAlgorithmException;
其实就是一些包,他们提供了各种密码算法。这些包其实就是提供者,就是这些密码算法的实现者。如果找不到包,就会抛出异常。比如异常EC KeyPairGenerator not available这应该是找不到密码算法提供者了。
MessageDigest md5 = MessageDigest.getInstance(“MD5”);
生成MessageDigest对象。MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。
md5.update(val.getBytes());
val为需要计算的字符串,update传入的参数是字节类型或字节类型数组,对于字符串,需要先使用.
byte[] m = md5.digest();
执行MessageDigest对象的digest( )方法完成计算,计算的结果通过字节类型的数组返回。
return getString(m);
通过getString(m)函数将结果转化为字符串形式。
相关文章推荐
- Android 下拉列表Popupwindow
- Android官方开发文档Training系列课程中文版:高效显示位图之加载大位图
- android 更新时应用未安装
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
- Android通知栏学习(基础篇)
- android中的AIDL进程间通信
- 简析:Android:Activity中onCreate方法的参数及其用途
- 新建一个Fragment时需要宿主Activity向该Fragment传递数据
- Android性能优化相关
- Android_AsyncTask
- mac下 JNI-Hello world
- 04Android学习从零单排之ContentProvider
- 自定义View或者ViewGroup的自定义属性使用技巧
- Android按钮按下时和弹起时的颜色设置
- Android Studio你不知道的调试技巧
- Android Context完全解析,你所不知道的Context的各种细节
- Android Anr 相关搜集
- Android学习-创建圆角的DialogActivity
- Android - raw - properties
- android studio 镜像