zoukankan      html  css  js  c++  java
  • java和Dart实现异或加密算法

    Dart语言实现异或加密算法

    class XORCryptoUtil{
      static const String keyStr='709489b228199d46fa01f9dc59a9e9b5';
      int k = keyStr.length;
    
      /// 异或加密
      static String _coding(String message){
        int len = message.length;
        String str='';
        for(int i=0;i<len;i++){
          int msgCode= message.codeUnitAt(i);
          int keyCode = keyStr.codeUnitAt(i % keyStr.length );
          var res = msgCode ^ keyCode;
          str+=String.fromCharCode(res);
        }
        return str;
      }
      /// 加密
      static String encoding(String plaintext){
        return _coding(plaintext);
      }
      /// 解密
      static String decoding(String cipherText){
        return _coding(cipherText);
      }
    }
    
    
    void main(){
      String name = "123";
      String key = "709489b228199d46fa01f9dc59a9e9b5";
      String dres = XORCryptoUtil.decoding(name);
      String eres = XORCryptoUtil.encoding(dres);
      print('加密后:${Uri.encodeComponent(dres)}');
      print('解密后:$eres');
    }
    
    

    java语言实现异或加密算法

    public class XORCryptoUtil {
    
        private byte[] keyBytes; // 密钥
        private int k;
    
        public XORCryptoUtil(String key) {
            keyBytes = key.getBytes();
            k = keyBytes.length;
        }
    
        private String coding(String message) {
            byte[] origin = message.getBytes();
            byte[] master = new byte[origin.length];
            for (int i = 0, len = origin.length; i < len; i++) {
                master[i] = (byte) (origin[i] ^ keyBytes[i % k]);
            }
            return new String(master);
        }
    
        public String encoding(String plaintext) {
            return coding(plaintext);
        }
    
        public String decoding(String cipherText) {
            return coding(cipherText);
        }
    
    
    
        public static void main(String[] args) throws UnsupportedEncodingException {
            String name = "123";
            String key = "709489b228199d46fa01f9dc59a9e9b5";
    
            XORCryptoUtil crypto = new XORCryptoUtil(key);
            String cipherText = crypto.encoding(name); // 将name加密成密文
            String plaintext = crypto.decoding(cipherText); // 解密
            System.out.println("加密:"+ URLEncoder.encode(cipherText,"UTF-8"));//url 转译
            System.out.println("解密:"+plaintext);
        }
    }
    
  • 相关阅读:
    vue
    vue
    vue
    vue
    vue
    vue
    vue
    vue
    vue
    vue
  • 原文地址:https://www.cnblogs.com/zhang-cb/p/13964000.html
Copyright © 2011-2022 走看看