首页 > 代码库 > 短信发送AZDG加密算法
短信发送AZDG加密算法
Username:用户名,采用AZDG加密方式进行加密
Passwrod:密码,采用AZDG加密方式进行加密
密钥为:chinagdn
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /// <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; } |
?
1 2 | //插入下发短信 string message = smsclient.InsertDownSms(passport_encrypt(username, "chinagdn" ), passport_encrypt(password, "chinagdn" ), "" , sb.ToString()); |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。