Java编码摘要算法实例解析
作者:yaominghui 发布时间:2022-07-21 23:33:29
标签: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();
,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
来源:https://www.cnblogs.com/seliote/p/10103948.html


猜你喜欢
- 思路分析:要逆序遍历某个列表,首先要获得一个ListIterator对象,利用for()循环,以ListIterator类的hasNext(
- 写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题我使用的NPOI版本是2.2.1.0版本需要用到的命名空间using
- 介绍本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小、位置、旋转、超链接、可选文本等,以及如何读取、删除exc
- 本文实例为大家分享了C#实现串口示波器的具体代码,供大家参考,具体内容如下开发工具visual studio2019C#串口示波器,实时刷新
- 茫茫人海千千万万,感谢这一秒你看到这里。希望我的能对你的有所帮助!共勉!愿你在未来的日子,保持热爱,奔赴山海!Java基础知识(多态)多态因
- 最近chatGPT也是非常的火爆,相信大家都看到了,现在提供一种Java调用chatGPT的方法,我们主要通过两个工具来实现,一就是http
- 在Android系统上开发游戏是Android开发学习者所向往的,有成就感也有乐趣,还能取得经济上的报酬。那怎样开发Androi
- 本文实例为大家分享了android自定义Camera实现录像和拍照的具体代码,供大家参考,具体内容如下源码:package com.exam
- Intellij IDEA 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行
- Android透明状态栏只有在4.4之后有。在代码中加入下面几行代码即可实现来源:http://www.cnblogs.com/wangxi
- 前言在这篇文章里,最后总结处,我说了会讲讲循环依赖中,其中一个类添加@Async有可能会导致注入失败而抛异常的情况,今天就分析一下。一、异常
- 好久没有写有关UI的博客了,刚刚翻了一下之前的博客,最近一篇有关UI的博客:Android UI设计系列之自定义Dialog实现各种风格的对
- /// <summary>/// 固定长度的随机字符串/// </summary>/// <param nam
- 本文实例讲述了C#操作ftp类。分享给大家供大家参考。具体如下:using System;using System.Collections.
- 表格是最常用的数据统计形式之一,在 swing 中 由
- 体验了一下美团外卖的底部导航栏,感觉动画很流畅,分割线被顶起,还有图标的动画,可能用的lottie,觉得分割线被顶起可以自己写动画,所以试着
- 本文实例讲述了C#警惕匿名方法造成的变量共享。分享给大家供大家参考,具体如下:匿名方法匿名方法是.NET 2.0中引入的高级特性,“匿名”二
- 免责声明:本教程所有资源均来源于网络;仅用于学习交流,请勿用于任何商业行为;如需要,请使用正版授权;侵权联删。推荐最新 IntelliJ I
- 转TXT文件public object DataTableToTXT(DataTable vContent, string vOutputF
- 起源最近公司要做多租户,Mybatis-Plus的多租户插件很好用,但是有一个场景是:字典表或者某些数据表,一些数据需要在各个租户之间共享,