android MD5加密
2016-05-24 23:37
387 查看
菜鸟一枚,有写的不好的地方,还请各位大神指点。
android里面有自带的加密类MessageDigest,这是一个出发点,接下来就是各种调用。话不多说,上代码。
例子:
public String MD5(String s) {
//自己写的方法,传入一个字符串(一般加密就是密码加密,定义为字符串)
try {
//字符串调用转换为byte数组
byte[] aByte = s.getBytes();
//定义MessageDigest利用getInstance参数填写的是什么类型的加密,我这里写的MD5
MessageDigest aDigest = MessageDigest.getInstance("MD5");
//调用update方法,作用是刷新当前对象的摘要数据
aDigest.update(aByte);
//建立一个StringBuffer缓存字符串
StringBuffer md5=new StringBuffer();
String md5s=null;
for(int i = 0;i<aDigest.digest().length;i++)//最终完成摘要哈希的大小(digest()方法是完成摘要)
{
//保证是16进制的两位数
if(aDigest.digest()[i] & 0xFF < 0x10){
md5.append("0");
}
//每一个字节开始加密,这里的0xFF是255,这里的作用是保证这个数值是正的,toHexString是返回一个16进制数
//在StringBuffer里有append方法添加字符串
md5.append(Integer.toHexString(aDigest.digest()[i] & 0xFF));
}
//等到循环结束,也就是字节全部转换以后,则再次输出加密以后的字符串
return md5.toString();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
写一些MessageDigest的方法解释
返回 方法 作用
void reset() 重置摘要的数据,MessageDigest的对象可以再次摘要新的数据了
void update(byte[], int, int) 在字节数组指定的位置偏移多少开始更新摘要
void digest(byte[], int, int) 在字节数组指定的位置填充以完成摘要
boolean isEqual(byte[], byte[]) 对比两个字节摘要是否相等
android里面有自带的加密类MessageDigest,这是一个出发点,接下来就是各种调用。话不多说,上代码。
例子:
public String MD5(String s) {
//自己写的方法,传入一个字符串(一般加密就是密码加密,定义为字符串)
try {
//字符串调用转换为byte数组
byte[] aByte = s.getBytes();
//定义MessageDigest利用getInstance参数填写的是什么类型的加密,我这里写的MD5
MessageDigest aDigest = MessageDigest.getInstance("MD5");
//调用update方法,作用是刷新当前对象的摘要数据
aDigest.update(aByte);
//建立一个StringBuffer缓存字符串
StringBuffer md5=new StringBuffer();
String md5s=null;
for(int i = 0;i<aDigest.digest().length;i++)//最终完成摘要哈希的大小(digest()方法是完成摘要)
{
//保证是16进制的两位数
if(aDigest.digest()[i] & 0xFF < 0x10){
md5.append("0");
}
//每一个字节开始加密,这里的0xFF是255,这里的作用是保证这个数值是正的,toHexString是返回一个16进制数
//在StringBuffer里有append方法添加字符串
md5.append(Integer.toHexString(aDigest.digest()[i] & 0xFF));
}
//等到循环结束,也就是字节全部转换以后,则再次输出加密以后的字符串
return md5.toString();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
写一些MessageDigest的方法解释
返回 方法 作用
void reset() 重置摘要的数据,MessageDigest的对象可以再次摘要新的数据了
void update(byte[], int, int) 在字节数组指定的位置偏移多少开始更新摘要
void digest(byte[], int, int) 在字节数组指定的位置填充以完成摘要
boolean isEqual(byte[], byte[]) 对比两个字节摘要是否相等
相关文章推荐
- Android按返回键退出程序
- Android Screen Monitor真机抓屏教程
- android菜鸟第一天
- Android JSON 解析
- apk调试安装过程中logcat显示Activity不存在的问题
- 解决HierarchyViewer不能连接真机的问题
- Android入门学习——RxJava+Retrofit+MVP学习
- Android客户端与服务端进行交互
- Android进程管理学习
- Android大图片引起的内存问题(OOM)
- mac (OS X) 下Genymotion下载Android模拟器时出现 connection timeout occurred 不翻墙的解决办法
- native binder相关类
- 安卓 Data Binding 使用方法总结(姐姐篇)
- 最简单的android底部导航
- Android基础之十八显示gif动画,动态图片
- Android笔记:Button
- Android笔记:OptionsMenu
- Android adapter设计模式一 静态设值
- 图片压缩设置为界面背景,避免OOM
- ubuntu 下载android 源码