導航:首頁 > 數據分析 > 用戶密碼如何存儲在資料庫

用戶密碼如何存儲在資料庫

發布時間:2022-12-22 11:25:11

『壹』 如何安全的存儲用戶密碼

大多數的web開發者都會遇到設計用戶賬號系統的需求。賬號系統最重要的一個方面就是如何保護用戶的密碼。一些大公司的用戶資料庫泄露事件也時有發生,所以我們必須採取一些措施來保護用戶的密碼,即使網站被攻破的情況下也不會造成較大的危害。如果你還在存儲用戶密碼的MD5,那可真的有點弱了。
保護密碼最好的的方式就是使用帶鹽的密碼hash(salted password hashing).對密碼進行hash操作是一件很簡單的事情,但是很多人都犯了錯。接下來我希望可以詳細的闡述如何恰當的對密碼進行hash,以及為什麼要這樣做。
重要提醒
如果你打算自己寫一段代碼來進行密碼hash,那麼趕緊停下吧。這樣太容易犯錯了。這個提醒適用於每一個人,不要自己寫密碼的hash演算法 !關於保存密碼的問題已經有了成熟的方案,那就是使用phpass或者本文提供的源碼。
什麼是hash
hash("hello") =
hash("hbllo") =
hash("waltz") =

Hash演算法是一種單向的函數。它可以把任意數量的數據轉換成固定長度的「指紋」,這個過程是不可逆的。而且只要輸入發生改變,哪怕只有一個bit,輸出的hash值也會有很大不同。這種特性恰好合適用來用來保存密碼。因為我們希望使用一種不可逆的演算法來加密保存的密碼,同時又需要在用戶登陸的時候驗證密碼是否正確。
在一個使用hash的賬號系統中,用戶注冊和認證的大致流程如下:
1, 用戶創建自己的賬號
2, 用戶密碼經過hash操作之後存儲在資料庫中。沒有任何明文的密碼存儲在伺服器的硬碟上。
3, 用戶登陸的時候,將用戶輸入的密碼進行hash操作後與資料庫里保存的密碼hash值進行對比。
4, 如果hash值完全一樣,則認為用戶輸入的密碼是正確的。否則就認為用戶輸入了無效的密碼。
5, 每次用戶嘗試登陸的時候就重復步驟3和步驟4。

在步驟4的時候不要告訴用戶是賬號還是密碼錯了。只需要顯示一個通用的提示,比如賬號或密碼不正確就可以了。這樣可以防止攻擊者枚舉有效的用戶名。
還需要注意的是用來保護密碼的hash函數跟數據結構課上見過的hash函數不完全一樣。比如實現hash表的hash函數設計的目的是快速,但是不夠安全。只有加密hash函數(cryptographic hash functions)可以用來進行密碼的hash。這樣的函數有SHA256, SHA512, RipeMD, WHIRLPOOL等。
一個常見的觀念就是密碼經過hash之後存儲就安全了。這顯然是不正確的。有很多方式可以快速的從hash恢復明文的密碼。還記得那些md5破解網站吧,只需要提交一個hash,不到一秒鍾就能知道結果。顯然,單純的對密碼進行hash還是遠遠達不到我們的安全需求...
以上是下面鏈接文章里的片段
具體請查看這個鏈接里的文章:
http://www.freebuf.com/articles/web/28527.html
滿意望採納~

『貳』 資料庫中怎樣存儲用戶密碼才能保證安全

正確的方法就是不存儲密碼,而是存儲對密碼進行不可逆加密(如MD5)後的結果。這樣別人打開資料庫也只能看到加密運算後的結果,無法反推出密碼。而需要驗證用戶密碼時,只需要同樣進行加密運算然後和資料庫里的結果對比是否一致即可。

『叄』 jsp 資料庫用戶名和密碼是如何保存的

一般是存在一個.properties或者.xml文件中,作為配置文件。這樣就方便管理,即使資料庫的鏈接屬性如地址、服務名、埠、用戶名、密碼什麼的發生了變化,只要修改一下配置文件就可以了,很方便。

『肆』 如何將密碼加密後存入oracle資料庫

如果不需要恢復明碼,可以用md5
如果需要恢復明碼,可以用des之類的。

『伍』 用戶名和存儲密碼迷你資料庫加密的話應該怎麼做

1、定義一個加密處理的class類,通常可以使用MD5來加密,在網路上可以找到此Java源代碼

2、在保存用戶的密碼時,先對獲取的密碼進行MD5加密後再保存到數據,如:
String passwd=request.getParameter("passwd");
passwd=MD5(passwd);
//通過JDBC寫入到資料庫
3、在用戶登錄時,將用戶登錄輸入的密碼進行MD5加密後與資料庫讀取的密碼進行比較,若相等若通過登錄:
String passwd=request.getParameter("passwd");
.......
if(MD5(passwd).equal(rs.get("passwd")))
//通過登錄

『陸』 如何建立存放用戶名和密碼的資料庫表

createtableUserThe(資料庫表名)
(IdintIDENTITY(1,1)NOTNULL,
userIDint,'會員ID自動遞增,並是唯一的
usernamevarchar(50),'會員名稱50個字以內
attributeintDEFAULT0,'屬性默認值是設置0
Userpasswordvarchar(50),'這列是用戶存放密碼,建議用md5加密後保存,驗證的時候用戶輸入的密碼也加密後對比
UsTimeDateTimeDEFAULTGetDate(),'這個可以記錄時間,默認為生成的時間
);

『柒』 怎樣在資料庫中存儲用戶名密碼

user表;id(int 12,主鍵,自增,唯一,索引。username(varchar 64),password(varchar 64),createtime(time)創建時間欄位

『捌』 各位用php將密碼存入資料庫,都用什麼方法進行加密的

php將密碼存入資料庫,可以分內常見的4種方式:

1、直接md5加密存到到資料庫

2、md5兩次存到資料庫

3、對需要加密的字元串和一個常量 進行混淆加密

4、生成一個隨機的變數存到資料庫中,然後對需要加密的字元串和這個隨機變數加密


<?php
$str="admin";//需要加密的字元串
$str2="php";//增加一個常量混淆
$pass1=md5($str);

$pass2=md5(md5($str));

$pass3=md5($str.$str2);

echo$pass1."<br>".$pass2."<br>".$pass3;

?>


輸出:


$str="admin";//需要加密的字元串
$encrypt=$row['encrypt'];//生成的隨機加密字元串存到資料庫中
$pass4=md5($str.$encrypt);
//

『玖』 資料庫中密碼怎麼存放

我以前寫資料庫的時候是用MD5加密到資料庫的一個欄位。
但是看了一些文章說MD5也有可能破MD5的加密
如果你對加密十分在意的話,可以嘗試多種辦法,如果只是一般加密的話,普通人一般不會花太大的氣力去破界MD5的,放心去做把

『拾』 資料庫儲存密碼

一般密碼使用hash編碼進行存儲,當用戶注冊是要把用戶輸入的密碼轉換為
md5
或者
sha1
編碼,用戶登陸的時候,把用戶輸入的密碼轉換在和資料庫中存入的數據對比,如果相同就登陸成功。

閱讀全文

與用戶密碼如何存儲在資料庫相關的資料

熱點內容
android多線程寫文件棧溢出 瀏覽:242
台電酷閃量產工具 瀏覽:837
如何破壞文件 瀏覽:15
從什麼網站上查找國家標准 瀏覽:254
iphone5s最省電的瀏覽器 瀏覽:225
用數據線如何接攝像頭 瀏覽:110
qq手機電腦互傳文件 瀏覽:613
linux內核升級方法 瀏覽:986
iphone5沒有熱點 瀏覽:189
哪裡有在線幼兒c語言編程 瀏覽:959
iframe跨域調用js對象 瀏覽:178
蘋果手機能分文件夾嗎 瀏覽:679
fdb文件怎麼刪除裡面內容 瀏覽:638
龍江網路配置什麼路由器 瀏覽:169
如何使用指標導入數據 瀏覽:866
平時用什麼app看nba 瀏覽:503
win10想以管理員身份運行bat文件 瀏覽:85
合並單元格中的其他數據如何排序 瀏覽:331
電腦窗口程序在哪 瀏覽:281
前女友把我微信刪了又加什麼意思 瀏覽:655

友情鏈接