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#程序设计有所帮助。

(0)

相关推荐

  • C#将数字转换成字节数组的方法

    本文实例讲述了C#将数字转换成字节数组的方法.分享给大家供大家参考.具体实现方法如下: 下面的代码用到了MemoryStream 和 BinaryWriter // Create a byte array from a decimal public static byte[] DecimalToByteArray (decimal src) { // Create a MemoryStream as a buffer to hold the binary data using (MemorySt

  • C#实现按照指定长度在数字前补0方法小结

    本文实例总结了C#实现按照指定长度在数字前补0方法.分享给大家供大家参考.具体分析如下: 这里分析了C#按照指定的长度在数字前补0的两种方法 例如123可以转换成000123 String snum = "123"; //方法1 String pnum = snum.PadLeft(6,'0'); //方法2 String fnum = String.Format("{0:000000}",int.Parse(snum)); 希望本文所述对大家的C#程序设计有所帮助

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

    本文主要通过彩色图象灰度化来介绍C#处理数字图像的3种方法,Bitmap类.BitmapData类和Graphics类是C#处理图像的的3个重要的类. Bitmap只要用于处理由像素数据定义的图像的对象,主要方法和属性如下: GetPixel方法和SetPixel方法,获取和设置一个图像的指定像素的颜色. PixelFormat属性,返回图像的像素格式. Palette属性,获取或折纸图像所使用的颜色调色板. Height属性和Width属性,返回图像的高度和宽度. LockBits方法和Unl

  • C#将字节数组转换成数字的方法

    本文实例讲述了C#将字节数组转换成数字的方法.分享给大家供大家参考.具体实现方法如下: // Create a decimal from a byte array public static decimal ByteArrayToDecimal (byte[] src) { // Create a MemoryStream containing the byte array using (MemoryStream stream = new MemoryStream(src)) { // Crea

  • C#实现将千分位字符串转换成数字的方法

    本文实例主要实现了C#将千分位字符串转换成数字的方法,对C#初学者而言有一定的借鉴价值,主要内容如下: 主要功能代码如下: /// <summary> /// 将千分位字符串转换成数字 /// 说明:将诸如"–111,222,333的千分位"转换成-111222333数字 /// 若转换失败则返回-1 /// </summary> /// <param name="thousandthStr">需要转换的千分位</param

  • C#识别出图片里的数字和字母

    一个图片识别小工具,原先主要是识别以前公司的软件注册码截图里的数字和字母(每次要一个一个框复制出来粘贴到注册器里,很麻烦!),因为注册码出现的字母和数字基本就那几个,所以识别库的范围设定的比较少. 原理和算法在代码中做了详细说明,功能存在很大的局限性,但我的想法是把这个思路和实现的办法共享出来. 源码下载地址: http://git.oschina.net/bobo2cj/iamge2text /* * 开发思路:图片灰度处理,二进制,然后和图片中的字二进制库精确对比 * * 获取字库:通过下面

  • C#实现在两个数字之间生成随机数的方法

    本文介绍一个小编自己写的C#函数,它用于生成两个数之间的一个随机数. 在C#中有一个Random类,使用它可以很方便的生成随机数.其实一个最重要的生成方式就是给它一个最大值和一个最小值,系统可以自动生成该范围内的一个随机数字. 在创建Random对象的时候,需要赋值一个随机数种子.随机数种子是什么含义本文就不介绍了,反正如果没有种子,那么每次得到的随机数会是同一个随机数(很扯蛋是吧).这里我们使用Guid类的NewGuid()方法来造一个随机的字符吕,而且这个字符串是不会相同的.这个Guid的随

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

    本文实例讲述了C#将字母或数字加密成字母的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: public class MD5 {         static List<KeyValuePair<char, char>> MappingList;         #region 加密      public static string Encrypt(string str)         /// <summary>         /// 加密  

  • python实现将英文单词表示的数字转换成阿拉伯数字的方法

    本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法.分享给大家供大家参考.具体实现方法如下: import re _known = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9, 'ten': 10, 'eleven': 11, 'twelve': 12, 'thirteen': 13, 'fourt

  • Java实现数字转成英文的方法

    本文实例讲述了Java实现数字转成英文的方法.分享给大家供大家参考.具体分析如下: 英文数词,按3位3位区分 Hundred: 100 Thousand:1,000 Million: 1,000,000 Billion: 1,000,000,000 Trillion: 1,000,000,000,000 Quintillion: 1,000,000,000,000,000,000 Sextillion: 1,000,000,000,000,000,000,000 Nonillion: 1,000

  • php获取四位字母和数字的随机数的实现方法

    那么我们知道在php中简单的四位数的纯数字验证可以用rand(1000,9999)就可以了,但如果我们要得到字母和数字的随机四位数,那我们该如何写函数呢?下面胡鹏博客在php资料栏目下给出一个完整的实例. <?php function GetfourStr($len) { $chars_array = array( "0", "1", "2", "3", "4", "5", &qu

  • 只能是字母或数字或者是字母和数字的组合的正则previousSibling

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • python实现生成字符串大小写字母和数字的各种组合

    1 输出大写字母.小写字母.大小写字母.数字.大小写字母和数字 1.1输出小写:找到小写a(97)到z(122)的的ASCII码,然后转义为字母 lower = "" for i in range(97,123):     lower += chr(i) print('%s' % lower) 1.2输出大写:找到大写A(65)到Z(90)的的ASCII码,然后转义为字母 upper="" for i in range(65,91):     upper+=chr(

  • Vue封装--如何将数字转换成万

    目录 如何将数字转换成万 使用方法 将大数字单位转化成 万.亿 如何将数字转换成万 后端返回的数字要像下面这样在页面上以万为单位进行显示,为了方便,封装了此方法为笔记,以供以后使用 // 万转化 methods:{ formatDecimal(num, decimal) { num = this.fixeds(num * 1) num = num.toString(); let index = num.indexOf("."); if (index !== -1) { num = nu

  • C# 批量生成随机密码必须包含数字和字母并用加密算法加密

    要求: 密码必须包含数字和字母 思路: 1.列出数字和字符. 组成字符串 :chars 2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数. 3. 随机取不小于chars长度的随机数a,取字符串chars的第a位字符. 4.循环 8次,得到8位密码 5.循环N次,批量得到密码. 代码实现如下 Main函数: static void Main(string[] args) { string chars = "0123456789ABCDEFGHIJKLMNOPQRS

  • JS实现生成由字母与数字组合的随机字符串功能详解

    本文实例讲述了JS实现生成由字母与数字组合的随机字符串功能.分享给大家供大家参考,具体如下: 在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的结合 先看一下这个方式: Math.random().toString(36); 结果: 0.9kfiead48n toString后的参数规定可以是2-36之间的任意整数,不写的话默认是10(也就是十进制

  • python 去除txt文本中的空格、数字、特定字母等方法

    使用场景:需要去除txt文本中的空格.数字.特定字母等. 需要修改的txt文本叫做:train.txt 修改之后保存成:train_output.txt # ecoding=utf-8 ifn = r"train.txt" ofn = r"train_output.txt" infile = open(ifn,'rb') outfile = open(ofn,'wb') for eachline in infile.readlines(): #去掉文本行里面的空格.

随机推荐