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();
,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值