登錄密碼加密
㈠ 在做登陸時登陸密碼和加密後的密碼嗎
如果說你非要自己實現加密演算法,你可以看一下這篇文章來復習下這個演算法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加密啦 雖然吧可逆 不過也是可以破的