Java编码摘要算法实例解析
这篇文章主要介绍了Java编码摘要算法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
URL编码与解码
Strings="你好,世界!"; //URL编码 StringurlEncodedString=URLEncoder.encode(s,"UTF-8"); //URL解码 StringurlDecodedString=URLDecoder.decode(urlEncodedString,"UTF-8");
Base64编码与解码
//Base64编码
Stringbase64EncodedString=Base64
.getEncoder()
//去掉Base64后补位的=
.withoutPadding()
.encodeToString("你好,世界!!".getBytes(StandardCharsets.UTF_8));
//Base64解码
byte[]base64DecodedByteArray=Base64.getDecoder().decode(base64EncodedString);
Stringbase64DecodedString=newString(base64DecodedByteArray,StandardCharsets.UTF_8);
byte[]转16进制字符串
后面摘要算法可视化结果时会用到
/**
*byte[]按位转换为16进制String
*@paramaData需要转换的byte[]
*@returnbyte[]按位转换为的16进制String
*/
publicstaticStringbyteArrayToHexString(byte[]aData){
finalchar[]hexChars="0123456789abcdef".toCharArray();
//一个字节用两个16进制字符表示
StringBuilderstringBuilder=newStringBuilder(aData.length*2);
for(byteb:aData){
//高4位转换为16进制
stringBuilder.append(hexChars[(b>>>4)&0x0f]);
//低4位转换为16进制
stringBuilder.append(hexChars[b&0x0f]);
}
returnstringBuilder.toString();
}
MD5算法
//参数为摘要算法的名称
MessageDigestmessageDigest=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把算法名称换一下就行了
MessageDigestmessageDigest=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();
,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短