java 利用異或^進行加密


package com.zcj.eg001;

import java.nio.charset.Charset;

import org.junit.Test;


public class Encryption {
    public static void main(String[] args) {
        String pwd = "123456test";
        //簡易版
        test1(pwd);
        //復雜版
        System.out.println();
        test2(pwd);
    }
    
    
    public static void test1(String pwd) {
        char[] cs = pwd.toCharArray();
        for(int i = 0;i<cs.length;i++) {
            cs[i] = (char)(cs[i]^20000);
            
        }
        
        String encode = new String(cs);
        System.out.println("加密后:"+encode);
        
        char[] css = new String(cs).toCharArray();
        for(int i = 0;i<css.length;i++) {
            css[i] = (char)(css[i]^20000);
        }
        
        String decode = new String(css);
        System.out.println("解密后:"+decode);
        
    }
     
    
    public static void test2(String pwd) {  
        String enc = encode(pwd);  
        System.out.println("加密后:"+enc);  
        String dec = decode(enc);  
        System.out.println("解密后:"+dec);  
    } 
    
    private static final String key0 = "FECddfOI()*&<MNCXZPKL";  
    private static final Charset charset = Charset.forName("UTF-8");  
    private static byte[] keyBytes = key0.getBytes(charset);  
      
    public static String encode(String enc){  
        byte[] b = enc.getBytes(charset);  
        for(int i=0,size=b.length;i<size;i++){  
            for(byte keyBytes0:keyBytes){  
                b[i] = (byte) (b[i]^keyBytes0);  
            }  
        }  
        return new String(b);  
    }  
      
    public static String decode(String dec){  
        byte[] e = dec.getBytes(charset);  
        byte[] dee = e;  
        for(int i=0,size=e.length;i<size;i++){  
            for(byte keyBytes0:keyBytes){  
                e[i] = (byte) (dee[i]^keyBytes0);  
            }  
        }  
        return new String(e);  
    }  
  
   

}

運行后結果如下:

加密后:丑丒專且丕世喬久乓喬
解密后:123456test

加密后:567012pawp
解密后:123456test


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM