那位有.net 加密后只有是大写字母和数字函数

zfqok 2008-12-18 06:54:07
串的内容各种东西都有

加密后要求:
1.加密后只有是大写字母和数字
2.要有对应的解密函数
谢谢!
...全文
424 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyjimi 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zfqok 的回复:]
楼上的。处理当然是可以了,问题是如果处理了我想可逆回来怎么办啊
而且每次的转换又不是都有两个=号的
[/Quote]
你在Base64加密串中(首部或尾部),加上自己的控制信息啊。
比如最前面加个8字符,其中就有区分是否转换过==
土是土点,能解决问题。
zfqok 2008-12-20
  • 打赏
  • 举报
回复
在顶下
kingcsx666 2008-12-19
  • 打赏
  • 举报
回复
up
zfqok 2008-12-19
  • 打赏
  • 举报
回复
楼上的。处理当然是可以了,问题是如果处理了我想可逆回来怎么办啊
而且每次的转换又不是都有两个=号的
flyjimi 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zfqok 的回复:]
用Convert.ToBase64String 后
数字1转换后后面带了两个==。怎样产生只有数字和字母的序列,而且字母全是小写的。就向拍拍和淘宝的关键字搜索转化到地址栏里的一样
[/Quote]
两个==处理一下不就行了
iwalk 2008-12-18
  • 打赏
  • 举报
回复
关注
zfqok 2008-12-18
  • 打赏
  • 举报
回复
用Convert.ToBase64String 后
数字1转换后后面带了两个==。怎样产生只有数字和字母的序列,而且字母全是小写的。就向拍拍和淘宝的关键字搜索转化到地址栏里的一样
Sphonix 2008-12-18
  • 打赏
  • 举报
回复
/// <summary>
/// 对数据进行加密的方法(SHA1加密,不可逆)
/// </summary>
/// <param name="data">要加密的数据</param>
/// <returns>加密后的数据</returns>
public static string Encrypt(string data)
{
byte[] buffer = System.Text.Encoding.Default.GetBytes(data);
SHA1 sha = new SHA1CryptoServiceProvider();
byte[] bytes = sha.ComputeHash(buffer);
return System.Text.Encoding.Default.GetString(bytes);
}

//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}

/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
dayizhixiaotutu 2008-12-18
  • 打赏
  • 举报
回复
Convert.ToBase64String

Convert.FromBase64String
huwei001982 2008-12-18
  • 打赏
  • 举报
回复
Convert.ToBase64

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧