本文实例讲述了C#实现简易的加密、解密字符串工具类。分享给大家供大家参考。具体如下:
这里的类CypherHelper是一个用于加密、解密字符串的工具类~~~,适合于方便地加密、解密长度较短的密码等字符串(C#里面已经有了库System.Security.Cryptography,对于比较长的字符串或流来说是一个更好的选择)
类CypherHelper代码:
class CypherHelper { /// <summary> /// 加密字符串 /// </summary> /// <param name="word">被加密字符串</param> /// <param name="key">密钥</param> /// <returns>加密后字符串</returns> public static string Encrypt(string word, string key) { if (!System.Text.RegularExpressions.Regex.IsMatch(key, "^[a-zA-Z]*$")) { throw new Exception("key 必须由字母组成"); } key = key.ToLower(); //逐个字符加密字符串 char[] s = word.ToCharArray(); for (int i = 0; i < s.Length; i++) { char a = word[i]; char b = key[i % key.Length]; s[i] = EncryptChar(a, b); } return new string(s); } /// <summary> /// 加密单个字符 /// </summary> /// <param name="a">被加密字符</param> /// <param name="b">密钥</param> /// <returns>加密后字符</returns> private static char EncryptChar(char a, char b) { int c = a + b - 'a'; if (a >= '0' && a <= '9') //字符0-9的转换 { while (c > '9') c -= 10; } else if (a >= 'a' && a <= 'z') //字符a-z的转换 { while (c > 'z') c -= 26; } else if (a >= 'A' && a <= 'Z') //字符A-Z的转换 { while (c > 'Z') c -= 26; } else return a; //不再上面的范围内,不转换直接返回 return (char)c; //返回转换后的字符 } /// <summary> /// 解密字符串 /// </summary> /// <param name="word">被解密字符串</param> /// <param name="key">密钥</param> /// <returns>解密后字符串</returns> public static string Decrypt(string word, string key) { if (!System.Text.RegularExpressions.Regex.IsMatch(key, "^[a-zA-Z]*$")) { throw new Exception("key 必须由字母组成"); } key = key.ToLower(); //逐个字符解密字符串 char[] s = word.ToCharArray(); for (int i = 0; i < s.Length; i++) { char a = word[i]; char b = key[i % key.Length]; s[i] = DecryptChar(a, b); } return new string(s); } /// <summary> /// 解密单个字符 /// </summary> /// <param name="a">被解密字符</param> /// <param name="b">密钥</param> /// <returns>解密后字符</returns> private static char DecryptChar(char a, char b) { int c = a - b + 'a'; if (a >= '0' && a <= '9') //字符0-9的转换 { while (c < '0') c += 10; } else if (a >= 'a' && a <= 'z') //字符a-z的转换 { while (c < 'a') c += 26; } else if (a >= 'A' && a <= 'Z') //字符A-Z的转换 { while (c < 'A') c += 26; } else return a; //不再上面的范围内,不转换直接返回 return (char)c; //返回转换后的字符 } }
Main函数调用示例
class Program { static void Main(string[] args) { //1.加密 string a = CypherHelper.Encrypt("TsybiusLee1234", "Galatea"); Console.WriteLine("加密:TsybiusLee1234 → " + a); //2.解密 string b = CypherHelper.Decrypt(a, "Galatea"); Console.WriteLine("解密:" + a + " → " + b); Console.ReadLine(); } }
运行结果
希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍php 实现一个字符串加密解密的函数实例代码,包括了php 实现一个字符串加密解密的函数实例代码的使用技巧和注意事项,需要的朋友参考一下 php 实现一个字符串加密解密的函数 函数代码如下: 使用实例: 运行结果: 加密:AYCnIibFlg3ViRs 解密:132 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍PHP实现加强版加密解密类实例,包括了PHP实现加强版加密解密类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。
本文向大家介绍python实现简单加密解密机制,包括了python实现简单加密解密机制的使用技巧和注意事项,需要的朋友参考一下 本文使用python实现一个简单的加密解密机制。 描述:结合26个字母、以一个单词作为秘钥,使用python实现简单的加密解密机制 秘钥:大写的英文字符串 明文:包含空格、大小写字母、数字等的字符串 代码实现: 运行结果: # python jiami.py 秘钥:ZD
本文向大家介绍C#实现数据包加密与解密实例详解,包括了C#实现数据包加密与解密实例详解的使用技巧和注意事项,需要的朋友参考一下 在很多项目中,为了安全安全考虑,需要对数据包进行加密处理,本文实例所述的即为C#加密代码,在应用开发中有很大的实用价值。说起数据包加密,其实对C#编程者来说,应该是一个基础的技巧,是进行C#程序设计人员必须要掌握的技能。 C#实现加密功能的核心代码如下: 本例备有详细的注
我知道有几个与此相关的问题,但是大多数答案都提供了.NET4.0及以上版本的解决方案。对于我的用途,我必须以.NET3.5为目标。我想简单地加密和解密一个字符串存储在一个文件中,所讨论的文本不是敏感的用户/个人信息。
本文向大家介绍PHP实现的加密解密处理类,包括了PHP实现的加密解密处理类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的加密解密处理类。分享给大家供大家参考,具体如下: 关于加密解密感兴趣的朋友还可以参考本站在线工具: 密码安全性在线检测 高强度密码生成器 MD5在线加密工具 迅雷、快车、旋风URL加密/解密工具 更多关于PHP相关内容可查看本站专题:《php加密方法总结》、