当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# 字符串转ASCII码的问题,以及一些扩展(加密字符串、解密字符串)

admin2年前 (2023-01-11)C#与C++2270 修订时间:2023-01-11 13:56:09

1、不多说,直接上代码,下面是string单字符转ASCII码

        public int Asc(string character)
        {
            if (character.Length == 1)
            {
                System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
                int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
                return (intAsciiCode);
            }
            else
            {
                throw new Exception("Character is not valid.");
            }

        }

2、ASCII码转string

       public string Chr(int asciiCode)
        {
            if (asciiCode >= 0 && asciiCode <= 255)
            {
                System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
                byte[] byteArray = new byte[] { (byte)asciiCode };
                string strCharacter = asciiEncoding.GetString(byteArray);
                return (strCharacter);
            }
            else
            {
                throw new Exception("ASCII Code is not valid.");
            }
        }

3、加密方法

        /// <summary>
        /// 字符串加密
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string passscript(string str)
        {
            string lsstr1 = "";
            string lsstr;
            int k;
            if (str == "")
            {
                return str;
            }
            for (int i = 1; i < str.Length+1; i++)
            {
                lsstr = str.Substring(i - 1, 1);
                k = asi.Asc(lsstr);
                if (i % 2 == 0)
                {
                    k = k + i - 32;
                }
                else
                {
                    k = k - i + 8;
                }
                lsstr1 = lsstr1 + asi.Chr(k);
            }
            return lsstr1;
        }

4、解密方法

        /// <summary>
        /// 字符串解密
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string descript(string str)
        {
            string lsstr1 = "";
            string lsstr;
            int k;
            if (str == "")
            {
                return str;
            }
            for (int i = 1; i < str.Length+1; i++)
            {
                lsstr = str.Substring(i - 1, 1);
                k = asi.Asc(lsstr);
                if (i % 2 == 0)
                {
                    k = k - i + 32;
                }
                else
                {
                    k = k + i - 8;
                }
                lsstr1 = lsstr1 + asi.Chr(k);
            }
            return lsstr1;
        }

5、上述3、4 中使用到的相关内容

需要先实例化对象,类文件:Ascii.zip

//ASCII转string,与string转ASCII对象,实例化
Ascii asi = new Ascii();

因循环参数i必须从1开始,故单字符取得方法

str.Substring(i - 1, 1)

循环总数因如上原因也需这样

str.Length+1

以上加密与解密适合TJ系列HIS系统的加密与解密。

相关程序代码:

deScript.zip

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=277

分享给朋友:

相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。