MD5加密技术

简介: MD5加密技术

MD5加密技术

MD5是哈希算法中的一种,加密强度较为适中。哈希算法有下面几个特点:

①不可逆,即使在已知加密过程的前提下,无法从密文反推回明文。

②输出数据的长度固定。例如:MD5加密输出数据的长度固定就是32个字符。

③输入数据不变,输出数据不变;输入数据变,输出数据都会跟着变。

/**
 * 执行MD5加密的工具方法
 * @param soucre
 * @return
 */
public static String md5(String soucre) {    
  // 1.对字符串进行校验
  boolean checkResult = stringCheck(soucre);    
  // 2.如果字符串校验失败,则抛出一个异常
  if (!checkResult) {
    throw new RuntimeException(ACConst.MESSAGE_PWD_INVALID);
  }    
  // 3.将源字符串转换为字节数组
  byte[] inputBytes = soucre.getBytes();    
  // 4.获取MessageDigest实例
  String algorithm = "md5";    
  // 5.声明变量存储加密结果
  byte[] outputBytes = null;    
  try {    
    // 6.获取MessageDigest实例
    MessageDigest digest = MessageDigest.getInstance(algorithm);    
    // 7.执行加密
    outputBytes = digest.digest(inputBytes);
  } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
  }    
  // 8.把加密结果字节数组转换为字符串
  // ①声明StringBuilder
  StringBuilder builder = new StringBuilder();    
  // ②声明字符数组
  char[] characters = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E','F' };    
  // ③遍历outputBytes
  for (int i = 0; i < outputBytes.length; i++) {    
    byte b = outputBytes[i];    
    // ③取当前字节的低四位数值
    int lowValue = b & 15;    
    // ④取当前字节的高四位数值
    int highValue = (b >> 4) & 15;    
    // ⑤使用高四位和低四位的值从characters字符数组中取出对应的字符
    char lowChar = characters[lowValue];
    char highChar = characters[highValue];    
    // ⑥拼字符串
    builder.append(highChar).append(lowChar);    
  }    
  return builder.toString();
}
相关文章
|
3月前
|
Java 开发工具 数据安全/隐私保护
技术博客:市面上加密混淆软件的比较和推荐
技术博客:市面上加密混淆软件的比较和推荐
46 0
|
存储 SQL 人工智能
CCCF专栏 | 加密数据库技术:前沿与展望
本文将从数据安全防护的重大战略需求出发,聚焦数据安全搜索、加密数据库技术等前沿领域,深入探讨加密数据库的发展现状,揭示其设计过程中存在的安全性和性能方面的挑战,并提出未来关于加密数据库建设的一些愿景。
CCCF专栏 | 加密数据库技术:前沿与展望
|
12天前
|
JavaScript 前端开发 关系型数据库
金融技术解决方案:用Python和Vue开发加密货币交易平台
【4月更文挑战第11天】本文介绍了如何使用Python和Vue.js构建加密货币交易平台。首先确保安装了Python、Node.js、数据库系统和Git。后端可选择Flask或Django框架,通过RESTful API处理交易。前端利用Vue.js、Vuex和Vue Router创建用户友好的界面,并用Axios与后端通信。这种架构促进团队协作,提升代码质量和平台功能。
|
25天前
|
编解码 算法 安全
【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和实现
【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和实现
44 0
|
3月前
|
存储 安全 算法
保护数据隐私的安全加密算法:技术守护个人信息安全的利器
在数字化时代,个人信息安全日益受到威胁。本文将深入探讨安全加密算法的重要性,以及如何利用先进的技术保护个人数据的隐私。从对称加密到非对称加密,再到现代密码学的发展,我们将一一解析这些技术的原理和应用。通过了解安全加密算法,我们可以更好地保护个人数据隐私,确保信息的安全传输和存储。
59 3
|
3月前
|
存储 安全 算法
智能终端信息安全概念(五):硬件安全技术—加密芯片
智能终端信息安全概念(五):硬件安全技术—加密芯片
30 0
|
3月前
|
编解码 算法 安全
【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和代码
重点记住现代密码学的柯克霍夫原则:数据安全取决于密钥而不是算法的保密。即使密码系统的细节已经公开,只要密钥保密,系统依然可以保持安全。本文介绍了6种常用的加密技术和相应的代码实现。
45 1
【Java技术专题】「入门到精通系列」深入探索Java技术中常用到的六种加密技术和代码
|
3月前
|
供应链 安全 物联网
深度剖析:区块链技术掌握必备知识,加密货币与智能合约应用解析
深度剖析:区块链技术掌握必备知识,加密货币与智能合约应用解析
113 0
|
4月前
|
编解码 缓存 安全
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
140 1
|
2月前
|
数据安全/隐私保护
【中级软件设计师】—(针对上午题)加密技术与认证技术(二十一)
【中级软件设计师】—(针对上午题)加密技术与认证技术(二十一)
【中级软件设计师】—(针对上午题)加密技术与认证技术(二十一)