zoukankan      html  css  js  c++  java
  • [置顶] 浅谈Bsae64 加密后不能机密问题

    在前一个项目中涉及到了,在网络上传送东西,但是想的时用简单的握手+Base64编码加密。但是感觉挺挺简单的就在往上找了一个方法,进行加密。可是发现


      /// <summary> 
            /// 将字符串运用 base64算法解密 
            /// </summary> 
            /// <param name="code_type">编码类型</param> 
            /// <param name="code">已用base64算法加密的字符串</param> 
            /// <returns>解密后的字符串</returns> 
            public static string DecodeBase64(string code_type, string code)
            {
                string decode = "";
                byte[] bytes = Convert.FromBase64String(code);  //将2进制编码转换为8位无符号整数数组. 
                try
                {
                    decode = Encoding.GetEncoding(code_type).GetString(bytes);  //将指定字节数组中的一个字节序列解码为一个字符串。 
                }
                catch
                {
                    decode = code;
                }
                return decode;
            }






            /// <summary> 
        /// 将字符串运用 base64算法加密 
        /// </summary> 
        /// <param name="code_type">编码类型(编码名称) 
        /// * 代码页 名称 
        /// * 1200 "UTF-16LE"、"utf-16"、"ucs-2"、"unicode"或"ISO-10646-UCS-2" 
        /// * 1201 "UTF-16BE"或"unicodeFFFE" 
        /// * 1252 "windows-1252" 
        /// * 65000 "utf-7"、"csUnicode11UTF7"、"unicode-1-1-utf-7"、"unicode-2-0-utf-7"、"x-unicode-1-1-utf-7"或"x-unicode-2-0-utf-7" 
        /// * 65001 "utf-8"、"unicode-1-1-utf-8"、"unicode-2-0-utf-8"、"x-unicode-1-1-utf-8"或"x-unicode-2-0-utf-8" 
        /// * 20127 "us-ascii"、"us"、"ascii"、"ANSI_X3.4-1968"、"ANSI_X3.4-1986"、"cp367"、"csASCII"、"IBM367"、"iso-ir-6"、"ISO646-US"或"ISO_646.irv:1991" 
        /// * 54936 "GB18030"    
        /// </param> 
        /// <param name="code">待加密的字符串</param> 
        /// <returns>加密后的字符串</returns> 
        public static string EncodeBase64(string code_type, string code) 
        { 
            string encode = ""; 
            byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);  //将一组字符编码为一个字节序列. 
            try 
            {


                encode = Convert.ToBase64String(bytes);  //将8位无符号整数数组的子集转换为其等效的,以64为基的数字编码的字符串形式. 
            }
            catch
            {
                encode = code;
            }
            return encode;
        }

    上边是完成的加密解密方法。刚开始使用没有问题。后来发现报错,经过调试发现原来加密中文字符的时候解析会报错。就想这转换可是。一直没有成功

    后来  拿出解密串发现 了问题 

    最终  date.Replace("+", "%2B");替换了“+”号就解决了。

    遇见了就不要错过
  • 相关阅读:
    from fake_useragent import UserAgent
    teamviewer 安装 仅学习
    利用pandas 中的read_html 获取页面表格
    第十二天 最恶心的考试题
    第十三天 生成器和生成器函数, 列表推导式
    第十一天 函数名的使用以及第一类对象, 闭包, 迭代器
    第十天 动态参数,名称空间,作用域,函数的嵌套,gloabal / nonlocal 关键字
    初始函数, 函数的定义,函数名,函数体以及函数的调用,函数的返回值,函数的参数
    第八天 文件的读,写,追加,读写,写读,seek()光标的移动,修改文件以及另一种打开文件的方式
    第七天 1.基础数据类型的补充 2.set集合 3.深浅拷贝
  • 原文地址:https://www.cnblogs.com/Traner/p/2819999.html
Copyright © 2011-2022 走看看