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);
        }
    }

  • 相关阅读:
    接口自动化HttpRunner框架流程简介
    常用接口自动化工具框架
    接口自动化 python+request
    locust安装(性能测试)
    mac查看python的安装路径
    LA4119
    UVa11361
    求逆元
    欧拉phi函数
    快速幂
  • 原文地址:https://www.cnblogs.com/zhang-cb/p/13964026.html
Copyright © 2011-2022 走看看