九阴真经


密码学杂谈

<h5>base64:</h5> <pre><code>package com.example.wuji.jiami; /** * Base64不是加密算法 是可读性算法 * 有64个字符组成 * A-Z 26 a-z 26 / = 2个 一共 64 * * 还有Base58 没有I i 0 o / = */ public class Base64 { public static void main(String[] args) { } } </code></pre> <h5>字符阿斯玛值:</h5> <pre><code>package com.example.wuji.jiami; public class ByteBit { public static void main(String[] args) { String a = "3"; //cccc(a); String b = "a"; //cccc(b); //一个汉字在UTF-8编码格式下占三个字节 故数组长度是3 打印三个byte码值 String c = "金"; cccc(c); } public static void cccc(String a) { byte[] arr = a.getBytes(); for (byte b : arr) { System.out.println("对应的码表值为:" + b); //数字转换为二进制 String b_bit = Integer.toBinaryString(b); System.out.println("对应的位:" + b_bit); } } } </code></pre> <h5>消息摘要:</h5> <pre><code>package com.example.wuji.jiami; import com.sun.org.apache.xml.internal.security.utils.Base64; import java.security.MessageDigest; /** * 消息摘要 */ public class DigestDemo { public static void main(String[] args) throws Exception { String string="aa"; String key="MD5"; MessageDigest ss = MessageDigest.getInstance(key); byte[] sss = ss.digest(string.getBytes()); StringBuilder stringBuilder=new StringBuilder(); for (byte b : sss) { //吧秘文转化为十六进制 String bb = Integer.toHexString(b &amp; 0xff); //如果是密文长度是1的话 高位补零 if(bb.length()==1){ bb="0"+bb; } stringBuilder.append(bb); } System.out.println(Base64.encode(sss)); System.out.println(stringBuilder.toString()); } } </code></pre>

页面列表

ITEM_HTML