标签:函数 iges encoder byte 字节 地址 字符 code tostring
MD5 是一种加密算法
md5加密是非可逆的 摘要加密算法
SHA-1
SHA-256
通常用在对密码进行加密
MessageDigest md = MessageDigest.getInstance("md5|sha-1|sha-256");
md.update(string.getBytes("utf-8"));
byte[] bs = md.digest();
String msg = "qwe123"; //先得到消息摘要的对象 [加密方式对象] MessageDigest md = MessageDigest.getInstance("md5"); //将要加密的字符串加入到消息摘要中 md.update(msg.getBytes("utf-8")); //进行摘要加密,得到的是一个字节数组 byte[] bs = md.digest(); //将字节数组转换成大整数 //BigInteger是一个任意精度的整数 BigInteger num = new BigInteger(1,bs); //将整数转换成16进制的字符串 String str = num.toString(16); System.out.println(str); MessageDigest md2 = MessageDigest.getInstance("sha-1"); md2.update(msg.getBytes("utf-8")); byte[] bs2 = md2.digest(); BigInteger num2 = new BigInteger(1,bs2); String str2 = num2.toString(16); System.out.println(str2); MessageDigest md3 = MessageDigest.getInstance("sha-256"); md3.update(msg.getBytes("utf-8")); byte[] bs3 = md3.digest();
输出结果:
//将加密的数据转化成16进制的字符串
signum 正负号函数
BigInteger num = new BigInteger(signum,bs);
String str = num.toString(16);
输出结果:
编码过程:
Base64.Encoder encoder = Base64.getEncoder();
byte[] bs = encoder.encode(msg.getBytes("utf-8"));
String str = new String(bs,"UTF-8");
String msg = "中文"; //得到编码对象 Base64.Encoder encoder = Base64.getEncoder(); //开始编码 byte[] bs = encoder.encode(msg.getBytes("utf-8")); // String str = encoder.encodeToString(msg.getBytes("UTF-8")); //得到编码之后的字符串 String str = new String(bs,"UTF-8"); System.out.println(str);
输出结果:
解码过程:
Base64.Decoder decoder = Base64.getDecoder();
byte[] bs2 = decoder.decode(str);
String msg2 = new String(bs2,"UTF-8");
//解码 //得到解码器对象 Base64.Decoder decoder = Base64.getDecoder(); //解码,得到解码之后的字节数组 byte[] bs2 = decoder.decode(str); String msg2 = new String(bs2,"UTF-8"); System.out.println(msg2); //使用Base64对url中的中文进行处理 String name="张三"; Base64.Encoder urlEncoder = Base64.getUrlEncoder(); String str3 = urlEncoder.encodeToString(name.getBytes("utf-8")); String url = "http://www.baidu.com?name="+str3+"&age=20"; System.out.println(url);
输出结果:
使用场景
浏览器的url地址栏对于中文的支持不友好
如果需要通过浏览器的地址栏传输中文数据,通常先将数据进行Base64的编码
再传递给服务器
服务器拿到数据之后,需要先解码,才能够使用
标签:函数 iges encoder byte 字节 地址 字符 code tostring
原文地址:https://www.cnblogs.com/zxxb/p/13522685.html