我是想把密码加密啦,所以用异或。
但是不知道怎样用C#写,能详细点吗?谢谢啦!
还有就是异或适用于字母吗?谢谢啦!
但是不知道怎样用C#写,能详细点吗?谢谢啦!
还有就是异或适用于字母吗?谢谢啦!
解决方案 »
- C#实现查看指定网页的源文件
- 读取Excel的老问题..
- 一个 datetimepicker 的 BUG
- (急,在线等)关于PC与MC1000通信程序打包问题
- 算法:网上找的小写金额转为大写,看不懂,高手帮忙解释一下
- 这段代码在执行过程中总是出错,错误提示信息是:未将对象引用设置到对象的实例。
- 怎么样在RichTextBox中格式化显示Xml文档啊
- 求救:VS.NET安装的问题!
- UdpClient发送就这么慢吗?
- 用DSN连接SQL SERVER 数据库的ConnectionString 如何写???谢了!
- 把数据导入到Excel中,怎么定义宽度和行高啊?还有内容很多的话,要换行怎么办?
- 这一段话有什么问题啊,菜菜鸟求助
Console.WriteLine("d={0}",d);
//6的二进制是00000110,3的二进制是00000011,按位异或后等于00000101,即5
2 只能数字
using System.Security.Cryptography;其中就有SHA512,MD5等类,可以直接使用
如果是文本加密,光是异或可能不够安全,建议在异或之前再做一些处理。
/// 加密算法
/// </summary>
/// <param name="pwdEncrypt">要加密的字符串</param>
/// <param name="key">密钥</param>
/// <returns></returns>
public string Encrypt(string pwdEncrypt,string key)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pwdEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(key);
des.IV = ASCIIEncoding.ASCII.GetBytes(key);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder encryptPwd = new StringBuilder();
foreach(byte b in ms.ToArray())
{
encryptPwd.AppendFormat("{0:X2}",b);
}
encryptPwd.ToString();
return encryptPwd.ToString();
} /// <summary>
/// 解密算法
/// </summary>
/// <param name="pwdDecrypt">要解密的字符串</param>
/// <param name="key">密钥</param>
/// <returns></returns>
public string Decrypt(string pwdDecrypt,string key)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pwdDecrypt.Length / 2];
for(int x = 0;x < pwdDecrypt.Length/2;x++)
{
int i = (Convert.ToInt32(pwdDecrypt.Substring(x * 2,2),16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(key);
des.IV = ASCIIEncoding.ASCII.GetBytes(key);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
using System.Security.Cryptography;
using System.IO;
using System.Text;
我试过了,string ened=Encrypt("eeee","10");
编译运行后提示“指定键的大小对于此算法无效”。
这是怎么回事呀??是不是Key值的原因呢??