登录密码加密
㈠ 在做登陆时登陆密码和加密后的密码吗
如果说你非要自己实现加密算法,你可以看一下这篇文章来复习下这个算法http://wenku..com/link?url=Nk7GS-18e-5-LS8BEEqnwS1nt7jHFe-jDy16mhZkWmo0O2ic96-1VU5cGjAAF_PEE60Ov9nXMA2V89Jiu8eg-V0DpPXIlYk7_4zhjhRuJou。
如果你只是想用一个已经实现的库,并自己封装一下方法。。。。那我都不知道回答什么好了,不过我记得des加密,明文长度必须是八的整数倍。
㈡ 如何保证用户登录时提交密码已经加密
如何保证用户登陆时提交密码已经加密?密码是否已加密,需要客户端和服务端建立约定,双方按约定办事就行了。
这里提到的另一个问题是,如何保证传输安全?
最理想的方案当然是走 HTTPS 协议. HTTPS
在理论上是可靠的,但在国内会打一些折扣:你可以随便找一台电脑看看有没有安装商业公司或机构的根证书,这些根证书为线路某节点成为中间人提供了可能性;同时,在木马横行的年代,密码在加密提交前可能就被拿到了,此时
HTTPS
成了摆设,这是为什么国内流行密码控件的一个重要原因。
从成本和需求上考虑,对于众多对安全性要求不高的个人网站,仍然可以考虑采用
HTTP 传输,密码提交前通过 javaScript 加密。由于
JavaScript
代码暴露在客户端,因此一般通过不可逆的加密方法加密密码,而对于任何摘要式的加密算法,都可以通过类似
md5 字典的方式直接查表获知弱密码,所以要混入
salt
以增加制作字典的成本。可想而知,解密只是时间成本的问题。因此这里的重要前提是“对安全性要求不高”。
如何验证密码呢?一个可行的方法是,客户端提交
md5(password)
密码(如上所述,此方法只是简单保护了密码,是可能被查表获取密码的)。服务端数据库通过
md5(salt+md5(password)) 的规则存储密码,该 salt
仅存储在服务端,且在每次存储密码时都随机生成。这样即使被拖库,制作字典的成本也非常高。
密码被 md5() 提交到服务端之后,可通过 md5(salt +
form['password'])
与数据库密码比对。此方法可以在避免明文存储密码的前提下,实现密码加密提交与验证。
这里还有防止 replay
攻击(请求被重新发出一次即可能通过验证)的问题,由服务端颁发并验证一个带有时间戳的可信
token (或一次性的)即可。
当然,传输过程再有 HTTPS 加持那就更好了。
最后,为什么要密码控件?原因之一是上面说的,要防止密码在提交前被截获。
㈢ QQ WEB登陆密码加密方式
找找他引用的JS文件,一定可以找到的
㈣ GET登录求助 密码加密了
QQ空间现在采用的是动态加密,加密结果和验证码有密切关系, 也就是说是:密码+算法+验证码在一起,加密算法如下: public static string smethod_0(string s) { MD5 mD = MD5.Create(); byte[] bytes = Encoding.ASCII.GetBytes(s); byte[] array = mD.ComputeHash(bytes); StringBuilder stringBuilder = new StringBuilder(); byte[] array2 = array; for (int i = 0; i < array2.Length; i++) { byte b = array2[i]; stringBuilder.Append(b.ToString("x").PadLeft(2, '0')); } return stringBuilder.ToString().ToUpper(); } public static byte[] EncyptMD5Bytes(string s) { MD5 mD = MD5.Create(); byte[] bytes = Encoding.ASCII.GetBytes(s); return mD.ComputeHash(bytes); } public static string smethod_1(byte[] s) { MD5 mD = MD5.Create(); byte[] array = mD.ComputeHash(s); StringBuilder stringBuilder = new StringBuilder(); byte[] array2 = array; for (int i = 0; i < array2.Length; i++) { byte b = array2[i]; stringBuilder.Append(b.ToString("x").PadLeft(2, '0')); } return stringBuilder.ToString().ToUpper(); } public static string EncryptQQWebMd5(string s) { MD5 mD = MD5.Create(); byte[] bytes = Encoding.ASCII.GetBytes(s); byte[] array = mD.ComputeHash(bytes); StringBuilder stringBuilder = new StringBuilder(); byte[] array2 = array; for (int i = 0; i < array2.Length; i++) { byte b = array2[i]; stringBuilder.Append("\\x"); stringBuilder.Append(b.ToString("x2")); } return stringBuilder.ToString(); } public static string EncryptOld(string password, string verifyCode) { return smethod_0(EncyptMD5_3_16(password) + verifyCode.ToUpper()); } public static string Encrypt(string qq, string password, string verifyCode) { return Encrypt((long)Convert.ToDouble(qq), password, verifyCode); } public class ByteBuffer { private byte[] byte_0; public Stream BaseStream; public ByteBuffer() { this.BaseStream = new MemoryStream(); this.byte_0 = new byte[16]; } public virtual long Seek(int offset, SeekOrigin origin) { return this.BaseStream.Seek((long)offset, origin); } public bool Peek() { return this.BaseStream.Position < this.BaseStream.Length; } public byte[] ToByteArray() { //long position = this.BaseStream.Position; //this.BaseStream.Position = 0L; //byte[] array = new byte[(int)((object)((IntPtr)this.BaseStream.Length))]; //this.BaseStream.Read(array, 0, array.Length); //this.BaseStream.Position = position; //return array; long position = this.BaseStream.Position; this.BaseStream.Position = 0L; byte[] buffer = new byte[this.BaseStream.Length]; this.BaseStream.Read(buffer, 0, buffer.Length); this.BaseStream.Position = position; return buffer; } public void Put(bool value) { this.byte_0[0] = value ? ((byte)1) : ((byte)0); this.BaseStream.Write(this.byte_0, 0, 1); } public void Put(byte value) { this.BaseStream.WriteByte(value); } public void Put(byte[] value) { if (value == null) { throw new ArgumentNullException("value"); } this.BaseStream.Write(value, 0, value.Length); } public void PutInt(int value) { this.PutInt((uint)value); } public void PutInt(uint value) { this.byte_0[0] = (byte)(value >> 24); this.byte_0[1] = (byte)(value >> 16); this.byte_0[2] = (byte)(value >> 8); this.byte_0[3] = (byte)value; this.BaseStream.Write(this.byte_0, 0, 4); } public void PutInt(int index, uint value) { int offset = (int)this.BaseStream.Position; this.Seek(index, SeekOrigin.Begin); this.PutInt(value); this.Seek(offset, SeekOrigin.Begin); } public byte Get() { return (byte)this.BaseStream.ReadByte(); } } public static string Encrypt(long qq, string password, string verifyCode) { ByteBuffer byteBuffer = new ByteBuffer(); byteBuffer.Put(EncyptMD5Bytes(password)); byteBuffer.PutInt(0); byteBuffer.PutInt((uint)qq); EncryptQQWebMd5(password); byte[] s = byteBuffer.ToByteArray(); string str = smethod_1(s); return smethod_0(str + verifyCode.ToUpper()); } 上面的加密算法,调用方法是:string str = Encrypt(QQ号, QQ密码, 验证码); 加密后的密码会返回到str中,然后使用返回的密码进行登录。 注:QQ空间登录是采用的GET而不是POST。
㈤ mysql 数据库的 登录密码的 加密方式是什么
MySQL数据库的认证密码有两种方式,
MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密,
MySQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MySQL数据库里进行查询,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
selectold_password('111111');
(2)以MySQLSHA1方式加密
select password('111111');
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说MySQLSHA1加密的密码的实际位数是40位。
㈥ 能把系统登录密码用MD5加密吗
基于系统的登陆原理,加密以后无法对合法用户进行认证。
㈦ 登录系统中密码用MD5加密有何作用防谁呢
又不是直接用md5加密 其中还包含很多规则 比如密码加上用户名和一个数字之后再MD5 只是提高安全性而已
㈧ 登录怎么对密码MD5加密
获取到需要加密的字符串、然后传值到MD5方法里即可。
如: string str="我要加密";
MD5(str);
public string MD5(string str)
{
//加密操作。
}
㈨ 一个用户登录界面中要给输入的密码加密,并且能弹出加密后的结果
推荐易通文件夹锁软件,安全易用的文件夹加密软件。支持所有windows系统。可以加密文件夹,加密文件,加密磁盘(磁盘分区加密和USB锁),安全易用。加密后的资料防删除,复制。
第一步:下载安装易通文件夹锁软件
第二步:右击你想要加密的文件或文件夹,右键菜单里有易通加密菜单,直接就可以加密。
第三步:双击你已加密的文件或文件夹,将弹出密码框输入你加密设置的密码,即可解密码。
软件下载参考地址:
㈩ 用java做的登录框 怎么给密码加密
密码不是保存在cookie里么 如果非要数据库服务器记住密码 那就得用上面的朋友说的MD5加密啦 虽然吧可逆 不过也是可以破的