UUID,加密解密算法的使用
注意的地方:
Base64Encoder,Base64Decoder并不属于JDK标准库范畴,但是又包含在了JDK中
解决方法:按照如下方法设置Eclipse导入%JAVA_HOME%\jre\lib目录下的rt.jar包即可,Project->Properties,选择Java Build Path设置项,再选择Libraries标签,Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就可以使用啦!
如果在使用BASE64Decoder时遇到了这种情况:Access restriction : The type BASE64Decoder is not accessible due to restriction on required library C:\Program
files\java\jre6\lib\rt.jar ,只需要在project build path中先移除JRE System Library,再添加库JRE System Library就行了
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | package leetcode; import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.UUID; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Test12 { public static String getId(){ //UUID java中不重复序列 String id = UUID.randomUUID().toString(); //System.out.println(id); //得到的这个序列号很长,可以用哈希码来表示 int hashCode = Math.abs(id.hashCode()); return hashCode+ "" ; } //md5加密算法,单向加密,没有解密的 public static String md5(String str){ byte [] bytes = null ; try { bytes = MessageDigest.getInstance( "md5" ).digest(str.getBytes()); //得到MD5的实例,再将字符串加密 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return new BigInteger( 1 ,bytes).toString( 16 ); //把字节数组转化为正的bigInteger,然后变成16进制表示 } //base64算法,解密,加密 public static String base64Encode(String str){ BASE64Encoder baseEncode = new BASE64Encoder(); return baseEncode.encode(str.getBytes()); //加密 } public static String base64Decode(String str){ BASE64Decoder baseDecoder = new BASE64Decoder(); try { return new String(baseDecoder.decodeBuffer(str)); //解密 } catch (IOException e) { e.printStackTrace(); } return null ; } public static void main(String[] args) { System.out.println(getId()); System.out.println( "1234加密后:" +md5( "1234" )); String str = base64Encode( "1234" ); System.out.println( "1234加密后:" +str); System.out.println( "解密后:" +base64Decode(str)); } } |
运行结果如下:
888859973
1234加密后:81dc9bdb52d04dc20036dbd8313ed055
1234加密后:MTIzNA==
解密后:1234
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?