高分求加密(解密)代码

wangsheng1984 2007-03-09 12:56:15
我正在做一个用户注册.用户登陆界面
想在注册界面实现,密码的加密,然后充入数据库,
想在登陆页面读取数据库的信息(解密).
请大侠帮忙,我用的是 C#+SQL , .NET程序
...全文
315 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackysun2000 2007-03-09
  • 打赏
  • 举报
回复
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace MDcode
{
/// <summary>
/// Rijndael 的摘要说明。
/// </summary>
public class Rijndael
{
private System.Security.Cryptography.SymmetricAlgorithm sa;
private string key;
private string IV;

public Rijndael()
{
sa = new RijndaelManaged();
key = "!w@o#s$h%i^s&j*f(z)x_womenzuihao"; //"2S(a5%aE9&$820blOF*!ao43KplpPTq82%ggj(ai18*afkv3AfghKO28vs9favi(jFf*Fdja98w8JIlfo3v0f%lfjOi3jIf9*2jNv!eq";//这个自己可以改掉
IV = "1011[{shuyu733}]"; //"v%fjh1aaG&94r8fi*fyh4afg0ir3QYgjOi0fatj3iV5Y(jkg6e!fg0r3f7GVR9gmrn(0ogEnJ6q%gjir30h(T530hbw!gmKeq2g*(n0j";//这个也可以改掉

}
private byte[] getKey()
{
string gKey = this.key;

sa.GenerateKey();
byte[] bTemp = sa.Key;
int keyLength = bTemp.Length;

if(this.key.Length > keyLength)
{
gKey = gKey.Substring(0, keyLength);
}
else
{
gKey = gKey.PadRight(keyLength, ' ');
}

return ASCIIEncoding.ASCII.GetBytes(gKey);
}
private byte[] getIV()
{
string gIV = this.IV;

sa.GenerateIV();
byte[] bTemp = sa.IV;
int IVLength = bTemp.Length;

if(this.IV.Length > IVLength)
{
gIV = gIV.Substring(0, IVLength);
}
else
{
gIV = gIV.PadRight(IVLength, ' ');
}

return ASCIIEncoding.ASCII.GetBytes(gIV);
}

public string RijndaelEncrypt(string re)
{
byte[] reIn = UTF8Encoding.UTF8.GetBytes(re);
MemoryStream ms = new MemoryStream();

sa.Key = this.getKey();
sa.IV = this.getIV();

System.Security.Cryptography.ICryptoTransform it = sa.CreateEncryptor();
System.Security.Cryptography.CryptoStream cs = new CryptoStream(ms, it, System.Security.Cryptography.CryptoStreamMode.Write);

cs.Write(reIn, 0, reIn.Length);
cs.FlushFinalBlock();

byte[] reOut=ms.ToArray();
ms.Close();
cs.Close();

return Convert.ToBase64String(reOut);
}

public string RijndaelDencrypt(string rd)
{
byte[] rdIn = Convert.FromBase64String(rd);
MemoryStream ms = new MemoryStream(rdIn, 0, rdIn.Length);

sa.Key = this.getKey();
sa.IV = this.getIV();

System.Security.Cryptography.ICryptoTransform it = sa.CreateDecryptor();
System.Security.Cryptography.CryptoStream cs = new CryptoStream(ms, it, System.Security.Cryptography.CryptoStreamMode.Read);

StreamReader sr = new StreamReader(cs);
string str = sr.ReadToEnd();
ms.Close();
cs.Close();

return str;
}
}
}
实例化Rijndael对象
RijndaelEncrypt为加密方法
RijndaelDencrypt为解密方法
pcbabyyeah8 2007-03-09
  • 打赏
  • 举报
回复
我用AES
luoxia001 2007-03-09
  • 打赏
  • 举报
回复
还有,MD5和SHA1都是不可逆加密

所以用“把数据库密码取出,把当前用户输入的密码加密,两相对比”的方式
luoxia001 2007-03-09
  • 打赏
  • 举报
回复
wangsheng1984(可米) ( ) 信誉:100 Blog 2007-03-09 13:38:52 得分: 0


我用FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"MD5");

加密以后在登陆页面如何判断,密码的正确性呢

-----------------------------------------------------------------

密码MD5加密判断的原理是这样的
首先,把用户密码加密后保存到数据库
判断的时候,把数据库密码取出,把当前用户输入的密码加密,两相对比
如果相等,那就是密码匹配,反之就是密码不匹配

把这个道理理解之后,比用什么现成加密组件都强


修哲 2007-03-09
  • 打赏
  • 举报
回复
用我的就可以实现,保存进数据库的时候,就用我的加密后的字符串插入数据库,用户登陆的时候,用把数据库中的加密后的密码字符串解密然后再和用户输入的密码做对比
unlimitedsaga 2007-03-09
  • 打赏
  • 举报
回复
mark
wangsheng1984 2007-03-09
  • 打赏
  • 举报
回复
我用FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"MD5");

加密以后在登陆页面如何判断,密码的正确性呢
luoxia001 2007-03-09
  • 打赏
  • 举报
回复
SHA1加密方法
FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"SHA1");
MD5加密方法
FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"MD5");
修哲 2007-03-09
  • 打赏
  • 举报
回复
这个是一个类,把它编译成dll,你就可以直接用了,是des
using System;
using System.IO;
using System.Security.Cryptography;

namespace bh
{
/// <summary>
/// Security 的摘要说明。
/// </summary>
public class Security
{
const string KEY_64 = "xxxxxxxx";
const string IV_64 = "xxxxxxxx"; //注意了,是8个字符,64位
public Security()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public static string Encode(string data) //加密
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);

StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);

}

public static string Decode(string data) //解密
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
}
}
luoxia001 2007-03-09
  • 打赏
  • 举报
回复
public string EncryptPassword(string PasswordString,string PasswordFormat )
{
if (PasswordFormat="SHA1"){
EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"SHA1");
}
elseif (PasswordFormat="MD5")
{ EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"MD5");
}
else
{
EncryptPassword="";
}
zyg0 2007-03-09
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/article/1af1179e-43e5-4d4f-61ae-84922b5cba74/read.aspx
孟子写的加密解密类
rucallen 2007-03-09
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/article/26/26096.shtm
linekery 2007-03-09
  • 打赏
  • 举报
回复
用enterprise 里的 Cryptography
(基于python的毕业设计)基于混沌系统敏感文本信息加密算法研究(django)(源码+说明+演示视频),本科毕业设计高分项目。 【项目技术】 python+Django+mysql 【实现功能】 本次就是利用了Python技术来搭建一款敏感信息加密系统,通过以混沌技术来进行信息加密,从而实现以因子序列法实现很好的信息加密过程的实现。 对于本次的整个功能的设计上,要通过利用自然语言中的混沌技术来实现对上传的文本中的敏感信息进行有效的加密功能的实现,通过在线快速的、高效的、几乎不消耗资源的进行内容的加密来更好的提升整个系统的加密使用的有效性。通过以无规则的大段字符密文来实现很好的原始信息隐藏的功能实现。 其次是在解密上的设计,通过对应的秘钥,需要针对已经加密的敏感文本信息进行一次合理有效的解密功能,通过解密能够清晰的对加密信息进行有效的解密,通过解密后能够实现对加密信息明文的内容完整、准确的查看。 最后是对整个系统的数据流要进行合理的设计要,除了在传递的信息需要进行敏感源的加密之外,在本身的MySQL数据库中存储的用户信息等也需要继续很好的安全性的设计,保证整个系统中存储的数据也能够安全。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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