当前位置: 首页 > 编程笔记 >

Java编码摘要算法实例解析

符学
2023-03-14
本文向大家介绍Java编码摘要算法实例解析,包括了Java编码摘要算法实例解析的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了Java编码摘要算法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

URL 编码与解码

String s = "你好,世界!";
// URL 编码
String urlEncodedString = URLEncoder.encode(s, "UTF-8");
// URL 解码
String urlDecodedString = URLDecoder.decode(urlEncodedString, "UTF-8");

Base64 编码与解码

// Base64 编码
String base64EncodedString = Base64
    .getEncoder()
    // 去掉 Base64 后补位的 =
    .withoutPadding()
    .encodeToString("你好,世界!!".getBytes(StandardCharsets.UTF_8));
// Base64 解码
byte[] base64DecodedByteArray = Base64.getDecoder().decode(base64EncodedString);
String base64DecodedString = new String(base64DecodedByteArray, StandardCharsets.UTF_8);

byte[] 转 16 进制字符串

后面摘要算法可视化结果时会用到

/**
 * byte[] 按位转换为 16 进制 String
 * @param aData 需要转换的 byte[]
 * @return byte[] 按位转换为的 16 进制 String
 */
public static String byteArrayToHexString(byte[] aData) {
  final char[] hexChars = "0123456789abcdef".toCharArray();
  // 一个字节用两个 16 进制字符表示
  StringBuilder stringBuilder = new StringBuilder(aData.length * 2);
  for (byte b : aData) {
    // 高 4 位转换为 16 进制
    stringBuilder.append(hexChars[(b >>> 4) & 0x0f]);
    // 低 4 位转换为 16 进制
    stringBuilder.append(hexChars[b & 0x0f]);
  }
  return stringBuilder.toString();
}

MD5 算法

// 参数为摘要算法的名称
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
// 以下两行代码相当于 messageDigest.update("你好,世界!".getBytes(StandardCharsets.UTF_8));
messageDigest.update("你好,".getBytes(StandardCharsets.UTF_8));
messageDigest.update("世界!".getBytes(StandardCharsets.UTF_8));
byte[] md5Bytes = messageDigest.digest();

SHA1 算法

// SHA256 把算法名称换一下就行了
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
// 以下两行代码相当于 messageDigest.update("你好,世界!".getBytes(StandardCharsets.UTF_8));
messageDigest.update("你好,".getBytes(StandardCharsets.UTF_8));
messageDigest.update("世界!".getBytes(StandardCharsets.UTF_8));
byte[] md5Bytes = messageDigest.digest();

,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值

 类似资料:
  • 本文向大家介绍java实现的MD5摘要算法完整实例,包括了java实现的MD5摘要算法完整实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现的MD5摘要算法。分享给大家供大家参考,具体如下: 使用org.apache.commons.codec.digest.DigestUtilsorg.apache.commons.codec.digest.DigestUtils来实现md

  • 本文向大家介绍Java加密 消息摘要算法SHA实现详解,包括了Java加密 消息摘要算法SHA实现详解的使用技巧和注意事项,需要的朋友参考一下 SHA是消息摘要算法的一种实现方式,前面已经总结过MD2\4\5的实现,接下来就为大家总结一下SHA的实现。 SHA的jdk实现: SHA的BC实现: 对于SHA224,JAVA jdk并没有提供实现,下面是利用BC实现的方法: 对于SHA224还有一种类

  • 本文向大家介绍Java加密 消息摘要算法MAC实现详解,包括了Java加密 消息摘要算法MAC实现详解的使用技巧和注意事项,需要的朋友参考一下 MAC是消息摘要算法的第三种实现方式,另外两种方式分别为:MD2\4\5、SHA。 MAC的jdk实现:1、默认密钥方式 2、动态密钥方式: MAC的BC实现: 到今天JAVA中的Base64、对称加密、消息摘要加密的实现总结就完工了,如果哪位对此感兴趣,

  • Hash 算法 定义 Hash (哈希或散列)算法是信息技术领域非常基础也非常重要的技术。它能任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash 值),并且不同的明文很难映射为相同的 Hash 值。 例如计算一段话“hello blockchain world, this is yeasy@github”的 MD5 hash 值为 89242549883a2ef85dc81b90f

  • 本文向大家介绍Python hashlib常见摘要算法详解,包括了Python hashlib常见摘要算法详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等 计算出一个字

  • 本文向大家介绍Java消息摘要算法MAC实现与应用完整示例,包括了Java消息摘要算法MAC实现与应用完整示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java消息摘要算法MAC实现与应用。分享给大家供大家参考,具体如下: 一 介绍 MAC:Message Authentication Code HMAC:keyed-Hash Message Authencication Code,