• 简单加密技术及mysql数据库自带函数加解密


    Java代码实现简单可逆加解密

    import javax.crypto.Cipher;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    public class SecureStorageTool {
    	 private static final String AES="AES";
    	    private static final String CHAR_SET_NAME1="UTF-8";
    	    private static final String CHAR_SET_NAME2="ASCII";
    	    private static final String CIPHER_KEY="AES/CBC/PKCS5Padding";
    
    	    /**
    	     * 加密用的Key 可以用26个字母和数字组成 此处使用AES-128-CBC加密模式,key需要为16位。
    	     */
    	    private static final String IV_PARAMETER="kuc#fcp84d2x.pr8";
    	    /**
    	     * 可以用26个字母和数字组成 此处使用AES-128-CBC加密模式,需要为16位。
    	     */
    	    private static final String S_KEY="idpj587l0#4@7oj7";
    
    
    	    /**
    	     * 加密
    	     * @param param
    	     * @return
    	     * @throws Exception
    	     */
    	    public static String encryption(String param) {
    	    	 if(param==null) {
    	    		 return null;
    	    	 }
    	    	 if(param.isEmpty()) {
    	    		 return "";
    	    	 }
    	    	 String encode = "";
    	    	try {
    	    		 Cipher cipher= Cipher.getInstance(CIPHER_KEY);
    	 	        SecretKeySpec skeySpec = new SecretKeySpec(S_KEY.getBytes(), AES);
    	 	        // 使用CBC模式,需要一个向量iv,可增加加密算法的强度
    	 	        IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes());
    	 	        cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
    	 	        // 此处使用BASE64做转码。
    	 	        encode = new BASE64Encoder().encode(cipher.doFinal(param.getBytes(CHAR_SET_NAME1)));
    				
    			} catch (Exception e) {
    				encode = null;
    			}
    	       
    	        return encode;
    
    	    }
    
    	    /**
    	     *  解密
    	     * @param value
    	     * @return
    	     * @throws Exception
    	     */
    	    public static String decrypt(String value) {	    	 
    	    	 if(value==null) {
    	    		 return null;
    	    	 }
    	    	 if(value.isEmpty()) {
    	    		 return "";
    	    	 }
    	    	 String decode = "";
    	    	try {
    	    	    SecretKeySpec skeySpec = new SecretKeySpec(S_KEY.getBytes(CHAR_SET_NAME2), AES);
    	  	        Cipher cipher = Cipher.getInstance(CIPHER_KEY);
    	  	        IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes());
    	  	        cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
    	  	        // 先用base64解密
    	  	        decode = new String(cipher.doFinal(new BASE64Decoder().decodeBuffer(value)), CHAR_SET_NAME1);
    			} catch (Exception e) {
    				decode = null;
    			}
    	  
    	        return decode;
    	    }
    
    
    	    /**
    	     测试
    	     * @throws Exception 
    	     */
    	   
    	    public static void main(String[] args) throws Exception {
    	    	  String key="usemeiguogou";
    		        System.out.println("key="+key);
    		        //输出 key=123
    		        String value=encryption(key);
    		        System.out.println("encryption value="+value);
    		        //输出 encryption value=OTslJ40Fa9a7ImOmCbmLPw==
    		        System.out.println("decrypt:"+decrypt("  "));
    		        //输出 decrypt key=123
    		}
    
    }
    
    

    mysql数据库自带函数加解密

    		加密
    		HEX(AES_ENCRYPT(#{},<include refid="key" />))
    		
    		解密
    		AES_DECRYPT(UNHEX(),<include refid="key" />)
    
  • 相关阅读:
    金盾视频高级加密系统 2016S VIP 注册版 高强度视频加密工具
    Webshell管理+网站后台管理+菜刀
    易 5.2 修正版+破解+完美支持Win8/7
    易5.1破解版+汉语编程
    UltraISOPE 9.6.2.3059简体中文注册版/单文件版+软碟通
    hfs网络文件服务器 2.3
    免费开通二级域名的论坛
    周星驰电影全集+BT种子下载+高清版MKV+周星驰系列电影合集
    DJ音乐盒-专注DJ
    EXE加载皮肤DLL
  • 原文地址:https://www.cnblogs.com/InternetJava/p/14350236.html
Copyright © 2020-2023  润新知