zoukankan      html  css  js  c++  java
  • UUID,加密解密算法的使用

    注意的地方:

    Base64Encoder,Base64Decoder并不属于JDK标准库范畴,但是又包含在了JDK中

    解决方法:按照如下方法设置Eclipse导入%JAVA_HOME%jrelib目录下的rt.jar包即可,Project->Properties,选择Java Build Path设置项,再选择Libraries标签,Add External Jars添加%JAVA_HOME%jrelib t.jar就可以使用啦!

    如果在使用BASE64Decoder时遇到了这种情况:Access restriction : The type BASE64Decoder is not accessible due to restriction on required library C:Program 
    filesjavajre6lib t.jar ,只需要在project build path中先移除JRE System Library,再添加库JRE System Library就行了

    具体代码如下:

    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

  • 相关阅读:
    一个贼基础的 编码解码方式
    SQL 中循环、for循环、游标
    sql中判断是否存在 数据库、表、存储过程、函数
    sql 同步表或同步表的时候更改部分字段
    sql存储过程的建立
    POJ
    UCloud 的安全秘钥 (计蒜客初赛第五场)(待解决)
    UCloud 机房的网络搭建(计蒜客初赛第五场)
    2017 计蒜之道 初赛 第四场
    腾讯课堂的物理实验(2017计蒜客初赛第三场)
  • 原文地址:https://www.cnblogs.com/wt20/p/5823461.html
Copyright © 2011-2022 走看看