C#将字母或数字加密成字母的方法

 更新时间:2015年03月10日 16:10:13   作者:MeGoodtoo  
这篇文章主要介绍了C#将字母或数字加密成字母的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#将字母或数字加密成字母的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:
public class MD5
{
        static List<KeyValuePair<char, char>> MappingList;
        #region 加密      public static string Encrypt(string str)
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="str">要加密的字符串</param>
        /// <returns>返回结果的字符串</returns>
        public static string Encrypt(string str)
        {
            MappingList = new List<KeyValuePair<char, char>>();
            for (char c = '0'; c <= '9'; c++)
                MappingList.Add(new KeyValuePair<char, char>(c, (char)(c - '0' + 'a')));
            for (char c = 'a'; c <= 'f'; c++)
                MappingList.Add(new KeyValuePair<char, char>(c, (char)(c - 'a' + 'u')));
            return Encoding.ASCII.GetBytes(str)
                .Select((b, i) => (b ^ ((byte)(0xa0 + i))).ToString("x2"))
                .Aggregate("", (s, c) => s + c)
                .ToCharArray().Select(c => MappingList.First(kv => kv.Key == c).Value)
                .Aggregate("", (s, c) => s + c);
        }
        #endregion
        #region 解密       public static string Decrypt(string str)
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="str">解密的字符串</param>
        /// <returns>返回结果字符串</returns>
        public static string Decrypt(string str)
        {
            string base16 = str.ToCharArray()
                .Select(c => MappingList.First(kv => kv.Value == c).Key)
                .Aggregate("", (s, c) => s + c);
            return Encoding.ASCII.GetString((new byte[base16.Length / 2])
                .Select((b, i) => (byte)(Convert.ToByte(base16.Substring(i * 2, 2), 16) ^ ((byte)(0xa0 + i)))).ToArray());
        }
        #endregion
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • Unity3D Ui利用shader添加效果

    Unity3D Ui利用shader添加效果

    这篇文章主要为大家详细介绍了Unity3D Ui利用shader添加效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • 在C#中如何使用JSON

    在C#中如何使用JSON

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易读、易解析的特点,广泛用于API数据交互、配置文件等,本文介绍在C#中如何使用JSON,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • c#中使用自动属性减少代码输入量

    c#中使用自动属性减少代码输入量

    .Net 3.0中的自动属性可以大幅度降低我们输入的代码量,需要的朋友可以参考下
    2012-12-12
  • C#中Path类的使用方法

    C#中Path类的使用方法

    这篇文章主要介绍了C#中Path类的使用方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C#将时间转成文件名使用方法

    C#将时间转成文件名使用方法

    C#将时间转成文件名用到的是DateTime类的ToFileTime方法,下面看使用方法吧
    2014-01-01
  • C#读取数据库返回泛型集合详解(DataSetToList)

    C#读取数据库返回泛型集合详解(DataSetToList)

    本篇文章主要是对C#读取数据库返回泛型集合(DataSetToList)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#如何取硬件标志

    C#如何取硬件标志

    C#如何取硬件标志...
    2007-03-03
  • WPF自定义控件和样式之自定义按钮(Button)

    WPF自定义控件和样式之自定义按钮(Button)

    接触WPF也有两个多月了,有了一定的理论基础和项目经验,现在打算写一个系列,做出来一个WPF的控件库。下面这篇文章主要给大家介绍了关于WPF自定义控件和样式之自定义按钮(Button)的相关资料,需要的朋友可以参考下。
    2018-04-04
  • 详细解析C#多线程同步事件及等待句柄

    详细解析C#多线程同步事件及等待句柄

    本篇文章主要介绍了C#多线程同步事件及等待句柄,希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,有需要的可以了解一下。
    2016-11-11
  • c#数字图像处理的3种方法示例分享

    c#数字图像处理的3种方法示例分享

    这篇文章主要介绍了c#数字图像处理的3种方法示例,需要的朋友可以参考下
    2014-02-02

最新评论