• 短信发送AZDG加密算法


    Username:用户名,采用AZDG加密方式进行加密

    Passwrod:密码,采用AZDG加密方式进行加密

    密钥为:chinagdn

          /// <summary>
          /// 短信发送AZDG加密算法
          /// </summary>
          /// <param name="txt">加密字符串</param>
          /// <param name="key">私有密钥</param>
          /// <returns></returns>
          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;
          }
          /// <summary>
          /// Passport 解密函数
          /// </summary>
          /// <param name="txt">加密后的字串</param>
          /// <param name="key">私有密匙(用于解密和加密)</param>
          /// <returns>字串经过私有密匙解密后的结果</returns>
          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;
          }
          /// <summary>
          /// Passport 密匙处理函数
          /// </summary>
          /// <param name="txt">待加密或待解密的字串</param>
          /// <param name="encrypt_key">私有密匙(用于解密和加密)</param>
          /// <returns>处理后的密匙</returns>
          public static string passport_key(string txt, string encrypt_key)
          {
              //先md5编码
              encrypt_key =
                   System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(encrypt_key, "MD5").ToString().ToLower();
              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 left = txt[i];
                  char right = encrypt_key[ctr++];
                  encodebyte[i] = (byte)(left ^ right);
              }
              tmp = System.Text.Encoding.Default.GetString(encodebyte);
              return tmp;
          }
        
    
    //插入下发短信
     string message = smsclient.InsertDownSms(passport_encrypt(username, "chinagdn"), passport_encrypt(password, "chinagdn"), "", sb.ToString());
    
  • 相关阅读:
    Bootstrap 、AngularJs
    spring boot 随手记
    STOMP
    socket、web socket
    spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)
    spring boot (1):初尝
    SOA、SOAP、RFC、RPC、IETF
    Django中级篇(上)
    面向对象进阶篇
    面向对象基础 反射
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/3749879.html
Copyright © 2020-2023  润新知