文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android编程之MD5加密算法实例分析

2022-06-06 09:36

关注

本文实例分析了Android编程之MD5加密算法。分享给大家供大家参考,具体如下:

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();
}
}

结束


 
private String getMD5Str(String str) {
  MessageDigest messageDigest = null;
  try {
   messageDigest = MessageDigest.getInstance("MD5");
   messageDigest.reset();
   messageDigest.update(str.getBytes("UTF-8"));
  } catch (NoSuchAlgorithmException e) {
   System.out.println("NoSuchAlgorithmException caught!");
   System.exit(-1);
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  byte[] byteArray = messageDigest.digest();
  StringBuffer md5StrBuff = new StringBuffer();
  for (int i = 0; i < byteArray.length; i++) {
   if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
    md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
   else
    md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
  }
 //16位加密,从第9位到25位
  return md5StrBuff.substring(8, 24).toString().toUpperCase();
}

补充:Android MD5加密字符串示例

这里将字符串进行MD5加密,返回加密后的字符串(实际上是该字符串的报文摘要)。


public static String md5(String string) {
 byte[] hash;
 try {
  hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
 } catch (NoSuchAlgorithmException e) {
  throw new RuntimeException("Huh, MD5 should be supported?", e);
 } catch (UnsupportedEncodingException e) {
  throw new RuntimeException("Huh, UTF-8 should be supported?", e);
 }
 StringBuilder hex = new StringBuilder(hash.length * 2);
 for (byte b : hash) {
  if ((b & 0xFF) < 0x10) hex.append("0");
  hex.append(Integer.toHexString(b & 0xFF));
 }
 return hex.toString();
}

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:java,android,MD5加密算法的实现代码(16位,32位)深入理解Android MD5数据加密Android实现简单MD5加密的方法Android获取apk签名指纹的md5值(防止重新被打包)的实现方法深入浅析Android手机卫士保存密码时进行md5加密android md5加密与rsa加解密实现代码Android md5加密与php md5加密一致详解


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯