A. java 生成一個隨機密碼,經過二次加密後保存到資料庫,然後返回給用戶這個隨機生成的密碼
String str= "";
StringBuffer str=new StringBuffer();
Random r=new Random();
for (int i=0;i<6;i++)
str.append(str.charAt(r.nextInt(36)));
System.out.println(str.toString());
使用MD5去兩次加密,保存數據里,
把str.tostring() 展示給用戶
B. 如何將密碼加密後存入oracle資料庫
加密的字元串一般是在
程序當中生產的比如現在流行的16位
md5
加密碼。一般都是在程序當中對用戶輸入的
真實密碼。進行一個
MD5加密
,會生產一個加密碼。然後按需要截取其中16位。在把這16位MD5加密碼
字元串
存取在資料庫當中。在用戶登入的時候。用戶會輸入真的密碼在進行加密截取。然後和資料庫當中的進行比較。如果成功則true反之為fasle
C. java語言實現密碼加密
一般只有加密碼過程,沒有解密。
用戶登陸時,把他輸入的密碼經過加密
再拿去與資料庫裡面的密碼比較就可以了。
修改密碼也是一樣的原理,輸入的原密碼加密後與資料庫密碼比較,符合的話再將新密碼加密後存入資料庫覆蓋原密碼
現在流行的MD5加密演算法 網上有很多JAVA的MD5演算法
D. idea的加密是什麼機制
IDEA加密標准由PGP(Pretty Good Privacy)系統使用。公共密鑰加密使用兩個不同的密鑰, 因此是一種不對稱的加密系統。它的一個密鑰是公開的, 而系統的基本功能也是有公共密鑰的人可以訪問的, 公共密鑰可以保存在系統目錄內或保存在未加密的電子郵件信息中。它的另一個密鑰是專用的, 它用來加密信息但公共密鑰可以解密該信息, 它也可以對公共密鑰加密的信息解密。在提供同等安全性的前提下, 專用密鑰加密的系統速度比較快。
RC5分組密碼演算法是1994由麻薩諸塞技術研究所的Ronald L. Rivest教授發明的,並由RSA實驗室分析。它是參數可變的分組密碼演算法,三個可變的參數是:分組大小、密鑰大小和加密輪數。在此演算法中使用了三種運算:異或、加和循環。
RC5是種比較新的演算法,Rivest設計了RC5的一種特殊的實現方式,因此RC5演算法有一個面向字的結構:RC5-w/r/b,這里w是字長其值可以是16、32或64對於不同的字長明文和密文塊的分組長度為2w位,r是加密輪數,b是密鑰位元組長度。由於RC5一個分組長度可變的密碼演算法,為了便於說明在本文中主要是針對64位的分組w=32進行處理的,下面詳細說明了RC5加密解密的處理過程:
1、創建密鑰組,RC5演算法加密時使用了2r+2個密鑰相關的的32位字:,這里r表示加密的輪數。創建這個密鑰組的過程是非常復雜的但也是直接的,首先將密鑰位元組拷貝到32位字的數組L中(此時要注意處理器是little- endian順序還是big-endian順序),如果需要,最後一個字可以用零填充。然後利用線性同餘發生器模2初始化數組S:
對於i=1到2(r+1)-1: (本應模 ,本文中令w=32)
其中對於16位字32位分組的RC5,P=0xb7e1 Q=0x9e37
對於32位字和64位分組的RC5,P=0xb7e15163 Q=0x9e3779b9
對於64位字和128位分組,P=0xb7151628aed2a6b Q=0x9e3779b97f4a7c15
最後將L與S混合,混合過程如下:
i=j=0
A=B=0
處理3n次(這里n是2(r+1)和c中的最大值,其中c表示輸入的密鑰字的個數)
2、加密處理,在創建完密鑰組後開始進行對明文的加密,加密時,首先將明文分組劃分為兩個32位字:A和B(在假設處理器位元組順序是little- endian、w=32的情況下,第一個明文位元組進入A的最低位元組,第四個明文位元組進入A的最高位元組,第五個明文位元組進入B的最低位元組,以此類推),其中操作符<<<表示循環左移,加運算是模 (本應模 ,本文中令w=32)的。輸出的密文是在寄存器A和B中的內容
3、解密處理,解密也是很容易的,把密文分組劃分為兩個字:A和B(存儲方式和加密一樣),這里符合>>>是循環右移,減運算也是模 (本應模 ,本文中令w=32)的。
IDEA演算法被認為是當今最好最安全的分組密碼演算法!
E. 如何將用戶名,密碼加密後放到cookies中(用戶名不加密).
Cookies現在經常被大家提到,那麼到底什麼是Cookies,它有什麼作用呢?Cookies是一種能夠讓網站伺服器把少量數據儲存到客戶端的硬碟或內存,或是從客戶端的硬碟讀取數據的一種技術。Cookies是當你瀏覽某網站時,由Web伺服器置於你硬碟上的一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。
當你再次來到該網站時,網站通過讀取Cookies,得知你的相關信息,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登錄等等。從本質上講,它可以看作是你的身份證。但Cookies不能作為代碼執行,也不會傳送病毒,且為你所專有,並只能由提供它的伺服器來讀取。保存的信息片斷以"名/值"對(name-value pairs)的形式儲存,一個"名/值"對僅僅是一條命名的數據。一個網站只能取得它放在你的電腦中的信息,它無法從其它的Cookies文件中取得信息,也無法得到你的電腦上的其它任何東西。 Cookies中的內容大多數經過了加密處理,因此一般用戶看來只是一些毫無意義的字母數字組合,只有伺服器的CGI處理程序才知道它們真正的含義。
由於Cookies是我們瀏覽的網站傳輸到用戶計算機硬碟中的文本文件或內存中的數據,因此它在硬碟中存放的位置與使用的操作系統和瀏覽器密切相關。在Windows 9X系統計算機中,Cookies文件的存放位置為C:/Windows/Cookies,在Windows NT/2000/XP的計算機中,Cookies文件的存放位置為C:/Documents and Settings/用戶名/Cookies。
硬碟中的Cookies文件可以被Web瀏覽器讀取,它的命令格式為:用戶名@網站地址[數字].txt。如筆者計算機中的一個Cookies文件名為:ch@163[1].txt。要注意的是:硬碟中的Cookies屬於文本文件,不是程序。
Cookies的設置
你可以在IE的"工具/Internet選項"的"常規"選項卡中,選擇"設置/查看文件",查看所有保存到你電腦里的Cookies。這些文件通常是以user@domain格式命名的,user是你的本地用戶名,domain是所訪問的網站的域名。如果你使用NetsCape瀏覽器,則存放在"C:/PROGRAMFILES/NETS- CAPE/USERS/"裡面,與IE不同的是,NETSCAPE是使用一個Cookie文件記錄所有網站的Cookies。
我們可對Cookie進行適當設置:打開"工具/Internet選項"中的"隱私"選項卡(注意該設置只在IE6.0中存在,其他版本IE可以單擊"工具/Internet選項" "安全"標簽中的"自定義級別"按鈕,進行簡單調整),調整Cookie的安全級別。通常情況,可以調整到"中高"或者"高"的位置。多數的論壇站點需要使用Cookie信息,如果你從來不去這些地方,可以將安全級調到"阻止所有Cookies";如果只是為了禁止個別網站的Cookie,可以單擊"編輯"按鈕,將要屏蔽的網站添加到列表中。在"高級"按鈕選項中,你可以對第一方Cookie和第三方的Cookie進行設置,第一方Cookie是你正在瀏覽的網站的Cookie,第三方Cookie是非正在瀏覽的網站發給你的Cookie,通常要對第三方Cookie選擇"拒絕"。你如果需要保存Cookie,可以使用IE的"導入導出"功能,打開"文件/導入導出",按提示操作即可。
Cookies的寫入與讀取
Cookies集合是附屬於Response對象及Request對象的數據集合,使用時需要在前面加上Response或Request。
用於給客戶機發送Cookies的語法通常為:
當給不存在的Cookies集合設置時,就會在客戶機創建,如果該Cookies己存在,則會被代替。由於Cookies是作為HTTP傳輸的頭信息的一部分發給客戶機的,所以向客戶機發送Cookies的代碼一般放在發送給瀏覽器的HTML文件的標記之前。
如果用戶要讀取Cookies,則必須使用Request對象的Cookies集合,其使用方法是: 需要注意的是,只有在伺服器未被下載任何數據給瀏覽器前,瀏覽器才能與Server進行Cookies集合的數據交換,一旦瀏覽器開始接收Server所下載的數據,Cookies的數據交換則停止,為了避免錯誤,要在程序和前面加上response.Buffer=True。
Cookies的應用
幾乎所有的網站設計者在進行網站設計時都使用了Cookie,因為他們都想給瀏覽網站的用戶提供一個更友好的、人文化的瀏覽環境,同時也能更加准確地收集訪問者的信息。
網站瀏覽人數管理
由於代理伺服器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是為每個訪問者建立一個唯一的ID。使用Cookie,網站可以完成以下工作:測定多少人訪問過;測定訪問者中有多少是新用戶(即第一次來訪),多少是老用戶;測定一個用戶多久訪問一次網站。
通常情況下,網站設計者是藉助後台資料庫來實現以上目的的。當用戶第一次訪問該網站時,網站在資料庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數或判斷用戶是新用戶還是老用戶。
按照用戶的喜好定製網頁外觀
有的網站設計者,為用戶提供了改變網頁內容、布局和顏色的權力,允許用戶輸入自己的信息,然後通過這些信息對網站的一些參數進行修改,以定製網頁的外觀。
在電子商務站點中實現諸如"購物籃"等功能
可以使用Cookie記錄用戶的ID,這樣當你往"購物籃"中放了新東西時,網站就能記錄下來,並在網站的資料庫里對應著你的ID記錄當你"買單"時,網站通過ID檢索資料庫中你的所有選擇就能知道你的"購物籃"里有些什麼。
在一般的事例中,網站的資料庫能夠保存的有你所選擇的內容、你瀏覽過的網頁、你在表單里填寫的信息等;而包含有你的唯一ID的Cookie則保存在你的電腦里。
Cookies的缺陷
Cookie雖然被廣泛的應用,並能做到一些使用其它技術不可能實現的功能。但也存在一些不夠完美的方面,給應用帶來不便。
多人共用一台電腦的問題
任何公共場合的電腦或者許多在辦公室或家裡使用的電腦,都會同時被兩個以上的人使用。這樣,當你用它在網上超市購物時,網上超市或網站會在這台機器上留下一個Cookie,將來也許就會有某個人試圖使用你的賬戶購物,帶來了不安全的可能。當然,在一些使用多用戶操作系統如Windows NT或UNIX的電腦上,這並不會成為一個問題。因為在多用戶操作系統下不同的賬戶的Cookie分別放在不同的地方。
Cookies被刪除時
假如你的瀏覽器不能正常工作,你可能會刪除電腦上所有的臨時Internet文件。然而,一旦這樣操作以後,你就會丟掉所有的Cookies文件。當你再次訪問一個網站時,網站會認為你是一位新用戶並分配給你一個新的用戶ID以及一個新的Cookie。結果將會造成網站統計的新老用戶比發生偏差,而你也難以恢復過去保存的參數選擇。
一人使用多台電腦時
有的人一天之中經常使用一台以上的電腦。例如在辦公室里有一台電腦、家裡有一台、還有移動辦公用的筆記本電腦。除非網站使用了特別的技術來解決這一問題,否則,你將會有三個不同的Cookies文件在這三台機器上,而在三台機器上訪問過的任何網站都將會把你看成三個不同的用戶。
防範Cookies泄密
想知道你訪問的網站是否在你的硬碟或內存中寫入了Cookies信息嗎?只需執行下面的操作步驟,就可以了解和控制你正在訪問的網站的Cookies信息。
步驟一點擊IE窗口中的"工具" "In-ernet選項",打開"Internet選項"設置窗口;
步驟二點擊"Internet選項"設置窗口中的"安全"標簽,然後再點擊"自定義級別"按鈕,進入"安全設置"窗口;
步驟三 找到"安全設置"窗口中的"Cookies"設置項。"Cookies"設置項下有兩個分選項,其中"允許使用存儲在您計算機上的ookies"是針對存儲在用戶計算機硬碟中的Cookies文件;"允許使用每個對話Cookies(未存儲)"是針對存儲在用戶計算機內存中的Cookies信息。存儲在硬碟中的Cookies文件是永久存在的,而存儲在內存中的Cookies信息是臨時的。要想IE在即將接收來自Web站點的所有Cookies時進行提示,可分別選擇上面兩個分選項中的"提示"項。當然,你也可以選擇"啟用",允許IE接受所有的Cookies信息(這也是IE的默認選項);選擇"禁止",則是不允許Web站點將Cookies存儲到您的計算機上,而且Web站點也不能讀取你計算機中已有的Cookies。
IE6.0提供了更為可靠的個人隱私及安全保護措施,可以讓用戶來控制瀏覽器向外發送信息的多少。在"Internet 選項"窗口中新增了"隱私"選項卡(圖1),用戶可以在其中直接設置瀏覽時的隱私級別,按需要控制其他站點對自己電腦所使用的Cookies。
如果我們正在瀏覽的站點使用了Cookie,那麼在瀏覽器狀態欄中會有一個黃色驚嘆號的標記,雙擊後可打開"隱私報告"對話框,用戶可以在其中查看具體的隱私策略,還可直接點擊"設置"按鈕後在上述"隱私"選項卡中調節安全隱私級別。
在"常規"選項卡中還增加了"刪除Cookies"按鈕(圖2),方便用戶直接清除本機上的Cookies。另外,在"工具" "選項" "高級"選項卡中也增加了一些進一步提高安全性的選項(如關閉瀏覽器時清空Internet臨時文件)。其實,如何更好地保護個人隱私和安全是微軟下一代".NET"戰略軟體中的關鍵技術,現在IE6.0已經嘗試著邁出了第一步。
另外,由於Cookies的信息並不都是以文件形式存放在計算機里,還有部分信息保存在內存里。比如你在瀏覽網站的時候,Web伺服器會自動在內存中生成Cookie,當你關閉IE瀏覽器的時候又自動把Cookie刪除,那樣上面介紹的兩種方法就起不了作用,我們需要藉助注冊表編輯器來修改系統設置。要注意的是,修改注冊表前請作備份,以便出現問題後能順利恢復。
運行Regedit,找到如下鍵值:HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Internet Settings/Cache/Special Paths/Cookies,這是Cookies在內存中的鍵值,把這個鍵值刪除。至此Cookies無論以什麼形式存在,我們都不用再害怕了。
最後有必要說明的一點是:杜絕Cookies雖然可以增強你電腦的信息安全程度,但這樣做同樣會有一些弊端。比如在一些需要Cookies支持的網頁上,會發生一些莫名其妙的錯誤,典型的例子就是你以後不能使用某些網站的免費信箱了。
Cookies欺騙
通過分析Cookie的格式,我們知道,最後兩項中分別是它的URL路徑和域名,伺服器對Cookie的識別靠的就是這兩個參數。正常情況下,我們要瀏覽一個網站時輸入的URL便是它的域名,需要經過域名管理系統DNS將其轉化為IP地址後進行連接。若能在DNS上進行一些設置,把目標域名的IP地址對應到其它站點上,我們便可以非法訪問目標站點的Cookie了。
要進行Cookies欺騙,其實很簡單。比如在Win9X下的安裝目錄下,有一名為hosts.sam的文件,以文本方式打開後會看到這樣的格式:
127.0.0.1 localhost
經過設置,便可以實現域名解析的本地化,只需將IP和域名依上面的格式添加到文件中並另存為hosts即可。hosts文件實際上可以看成一個本機的DNS系統,它可以負責把域名解釋成IP地址,它的優先權比DNS伺服器要高,它的具體實現是TCP/IP協議中的一部分。
比如我們要讀取的目標站點 所生成的Cookies信息,可以藉助(自己的站點)。 存放用來進行欺騙所需的文件,通過它讀取和修改對方的Cookie。
步驟一 ping 的IP地址:
ping
Reply from 192.168.0.1: bytes=32 time=20ms TTL=244
然後修改hosts.sam文件如下:
192.168.0.1
並保存為hosts文件。
步驟二 讀取Cookies信息:
將用來讀取Cookie的頁面傳 ,此時連,由於我們進行本機DNS域名解析的修改,這時網路連接的並不,而 。
這設在本地的Cookie便可被讀出。
步驟三 同樣道理,你可對讀出的數據進行修改,並可將修改後的信息寫入Cookie中。修改完畢後,刪掉hosts文件,再重新進,此時所使用的Cookies數據就是你制定的數據。
總之,在某種程度上雖然可以實現Cookies的欺騙,給網路應用帶來不安全的因素,但Cookies文件本身並不會造成用戶隱私的泄露,也不會給黑客提供木馬程序的載體,只要合理使用,它們會給網站管理員進行網站的維護和管理以及廣大用戶的使用都帶來便利。
Cookies集合具有以下幾種屬性:
1.Expires屬性:此屬性用來給Cookies設置一個期限,在期限內只要打開網頁就可以調用被保存的Cookies,如果過了此期限Cookies就自動被刪除。如:
設定Cookies的有效期到2004年4月1日,到時將自動刪除。如果一個Cookies沒有設定有效期,則其生命周期從打開瀏覽器開始,到關閉瀏覽器結束,每次運行後生命周期將結束,下次運行將重新開始。
2.Domain屬性:這個屬性定義了Cookies傳送數據的唯一性。若只將某Cookies傳送給_blank">搜狐主頁時,則可使用如下代碼:
3.Path屬性:定義了Cookies只發給指定的路徑請求,如果Path屬性沒有被設置,則使用應用軟體的預設路徑。
4.Srcure屬性:指定Cookies能否被用戶讀取。
5.Haskeys屬性:如果所請求的Cookies是一個具有多個鍵值的Cookies字典,則返回True,它是一個只讀屬性
轉自
F. MD5加密後的密碼存入資料庫後,如果用戶忘記了該怎麼找回呀...網上都說MD5隻能加密不能解密的
對 不能找回 除非1.你之前在資料庫保存明文密碼 2.提供用戶一個重新設置密碼的機會,通過密碼問題等方式讓用戶重新輸入密碼 然後保存新的MD5值
G. 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。
H. Jsp網頁注冊用戶名密碼,時將密碼加密保存資料庫,這樣的加密方式是怎麼實現一般寫在哪個文件里
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")))
//通過登錄
I. 如何使用MD5對密碼進行加密後再保存到資料庫中
對!!
你資料庫里的密碼是經過md5加密過的,登錄時你輸入密碼後系統會把你的密碼進到md5加密,然後再與資料庫里的加密的md5碼進行對比!!這是為了防止惡意程序進行監聽你的密碼!!
J. 怎麼該密碼加密以後存儲到資料庫中
自己寫兩個函數,一個字元串加密函數,把密碼按你的規則加密,一個字元串解密函數,把資料庫中讀出來的編碼轉換回你的密碼!