zoukankan      html  css  js  c++  java
  • 短信发送AZDG加密算法

       public static string passport_encrypt(string txt, string key)
            {
                //   使用随机数发生器产生   0~32000   的值并   MD5()
                Random rnd = new Random(100);
                int int_encrypt_key = rnd.Next(0, 32000);
                string encrypt_key = int_encrypt_key.ToString();

                int ctr = 0;
                string tmp = "";
                byte[] encodebyte = new byte[txt.Length];
                for (int i = 0; i < txt.Length; i++)
                {
                    ctr = ctr == encrypt_key.Length ? 0 : ctr;
                    char prefix = encrypt_key[ctr];
                    char left = txt[i];
                    char right = encrypt_key[ctr++];

                    encodebyte[i] = (byte)(left ^ right);
                    char[] block = new char[2];
                    block[0] = prefix;
                    block[1] = Convert.ToChar(encodebyte[i]);
                    tmp += new string(block);
                }
                //////用base64编码
                string complicatedstring = passport_key(tmp, key);/////先和key加一次密?

                byte[] inputbytes = System.Text.Encoding.Default.GetBytes(complicatedstring);

                string string_64 = Convert.ToBase64String(inputbytes, 0, inputbytes.Length);/////再和随机key加密


                return string_64;
            }
            public static string passport_decrypt(string txt, string key)
            {
                byte[] array_64 = Convert.FromBase64String(txt);
                string txt_64 = System.Text.Encoding.Default.GetString(array_64);
                txt = passport_key(txt_64, key);

                string temp = "";
                byte[] encodebyte = new byte[txt.Length];
                for (int i = 0; i < txt.Length; i++)
                {

                    char left = txt[i];
                    char right = txt[++i];
                    encodebyte[i] = (byte)(left ^ right);
                }
                temp = System.Text.Encoding.Default.GetString(encodebyte);
                return temp;
            }

  • 相关阅读:
    MySql-数据库基础
    Window安装MySQL
    Python程序中的进程操作-进程间通信(multiprocess.Queue)
    线程
    上传电影代码
    并发编程基础
    基于socketserver实现并发的socket编程
    模拟ssh远程执行命令
    GIT的使用,Pycharm中使用GitHub
    主机如何访问运行在虚拟机中的Django项目
  • 原文地址:https://www.cnblogs.com/james1207/p/3366039.html
Copyright © 2011-2022 走看看