使用超級(jí)加密3000這款軟件就可以
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供仁壽網(wǎng)站建設(shè)、仁壽做網(wǎng)站、仁壽網(wǎng)站設(shè)計(jì)、仁壽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、仁壽企業(yè)網(wǎng)站模板建站服務(wù),10多年仁壽做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
下載安裝軟件后,然后在需要加密的文件上面右鍵單擊,選擇超級(jí)加密,然后在彈出的密碼輸入窗口中輸入密碼,然后點(diǎn)擊確定。這樣的話,一個(gè)文件就可以加密成功了。
這款軟件也可以對(duì)文件夾加密,還有磁盤保護(hù)的功能,操作非常方便,但是功能卻非常齊全
phpstudy如何配置、修改數(shù)據(jù)庫(kù)的密碼方法如下:
使用『其他選項(xiàng)菜單』-『MySQL設(shè)置』-『設(shè)置或修改密碼』
。
重置MySQL密碼(忘記密碼時(shí)使用)
請(qǐng)使用『其他選項(xiàng)菜單』-『MySQL工具』-『重置密碼』。
題主你可以使用 md5 或者 sha1 進(jìn)行初步處理,但為了更加安全,請(qǐng)你同時(shí)加上兩個(gè) salt,一個(gè)靜態(tài) salt,一個(gè)動(dòng)態(tài)的 salt。以 md5 為例:\x0d\x0a假設(shè)通過(guò) POST 傳來(lái)的密碼為 $_POST['password'],在存入 DB 前先進(jìn)行如下的操作:\x0d\x0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);\x0d\x0a\x0d\x0a為了保證動(dòng)態(tài) salt 的唯一性,可以這樣操作:\x0d\x0a$dynamicSalt = hash('md5', microtime());\x0d\x0a\x0d\x0a對(duì)于動(dòng)態(tài)的 salt 可以與生成的密碼一起保存在 DB 中,而靜態(tài) salt 則可以直接放在類文件中(例如定義為一個(gè)靜態(tài)屬性即可)。\x0d\x0a首先謝謝題主采納了我的答案,但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所讀的源碼可能比較老,所以并沒(méi)使用上較新版本的加密方法,例如 bcrypt等。\x0d\x0a此外,第二點(diǎn),感謝評(píng)論中幾位前輩的提點(diǎn),已經(jīng)明白設(shè)置靜態(tài) salt 的意義并不大,生成一個(gè)較長(zhǎng)的動(dòng)態(tài) salt 已然可以解決問(wèn)題。\x0d\x0a\x0d\x0aLZ應(yīng)該采用加鹽HASH。\x0d\x0a如何“腌制”密碼呢?\x0d\x0a=_,=\x0d\x0a正確的格式應(yīng)該是,用戶password+動(dòng)態(tài)的salt\x0d\x0a動(dòng)態(tài)的salt不能像2L所說(shuō)的,使用microtime,因?yàn)闀r(shí)間在某些情況下不夠隨機(jī),而且是可能被猜解的。\x0d\x0a這里推薦一個(gè)我用的加鹽HASH\x0d\x0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));\x0d\x0a$password=sha1($register_password.$salt);\x0d\x0a\x0d\x0a解釋:\x0d\x0a首先使用mcrypt,產(chǎn)生電腦隨機(jī)生成的,專門用戶加密的隨機(jī)數(shù)函數(shù)。\x0d\x0a第二步,把得到的隨機(jī)數(shù)通過(guò)base64加密,使其變長(zhǎng)并且不利于猜解。\x0d\x0a第三步,把得出的鹽拼接到密碼的后面,再對(duì)其使用sha1進(jìn)行哈希\x0d\x0a再把password存入到用戶的數(shù)據(jù)庫(kù)。\x0d\x0aPS:為何不用靜態(tài)的salt?沒(méi)有必要,使用一個(gè)動(dòng)態(tài)隨機(jī)足夠長(zhǎng)的鹽足矣。\x0d\x0a為何不用MD5?因?yàn)殚L(zhǎng)度不夠。\x0d\x0a為何沒(méi)有使用多次HASH?因?yàn)檫@樣反而容易發(fā)生碰撞。\x0d\x0aHASH好之后怎么使用“腌制”好的密碼?\x0d\x0a用戶注冊(cè)-提交密碼-產(chǎn)生salt-腌制好的密碼存入數(shù)據(jù)庫(kù)-salt存入數(shù)據(jù)庫(kù)。\x0d\x0a用戶登錄-提交密碼-調(diào)用salt接到提交密碼的后面-進(jìn)行HASH-調(diào)用之前注冊(cè)腌制好的密碼-對(duì)比HASH值是否和這個(gè)密碼相同
今天有一個(gè)朋友問(wèn)我thinkphp的這個(gè)問(wèn)題,剛好百度搜索到你這個(gè)問(wèn)題。已經(jīng)解決。就幫你解答一下這個(gè)問(wèn)題。
首先我嘗試在入口文件封裝一個(gè)加密函數(shù),我用php des 加密,然后在配置文件config.php調(diào)用。然后在控制器里面使用,打印配置文件:dump(C());//輸出所有的配置文件信息, 雖然能看到正確的數(shù)據(jù)用戶名和密碼,但是會(huì)報(bào)錯(cuò)。失敗告終。
我說(shuō)一下我的解決方法。很簡(jiǎn)單。
1:把配置文件里面的用戶名,密碼,數(shù)據(jù)庫(kù)名瞎寫一寫,別人看到你的代碼的配置文件看到的就是錯(cuò)誤的數(shù)據(jù)庫(kù)名和密碼了。比如:
'DB_NAME' = 'SB', // 數(shù)據(jù)庫(kù)名
'DB_USER' = 'ni_da_ye', // 用戶名
'DB_PWD' = 'da_da_bi', // 密碼
在每個(gè)控制器文件里面。加入一段代碼。
比如你的IndexController.class.php文件。加下面的代碼。
/* 初始化方法*/
public function __construct(){
parent::__construct();
C("DB_NAME",decrypt('712349721937491237'));//數(shù)據(jù)庫(kù)名,
C('DB_USER',decrypt('712349721937491237'));//用戶名
C('DB_PWD',decrypt('712349721937491237'));//密碼
}
看清楚了嗎?
decrypt()這個(gè)函數(shù)就是我封裝的一個(gè)加密函數(shù),親自測(cè)試沒(méi)有錯(cuò)誤??赡軙?huì)犧牲一些性能。但是保證了用戶名,密碼,數(shù)據(jù)庫(kù)名沒(méi)有泄露。甚至你都可以把數(shù)據(jù)庫(kù)連接地址也加密一下。希望能幫到你。
PHP加密函數(shù)可以考慮用des,aes這些可逆加密。別用什么md4,md5.
不需要加密,也無(wú)法加密??梢赃@么說(shuō),如果數(shù)據(jù)庫(kù)和程序是在同一服務(wù)器,及數(shù)據(jù)庫(kù)的地址是localhost,那么無(wú)需加密,因?yàn)榧用芰藬?shù)據(jù)庫(kù)并不能自己解密,而且只要網(wǎng)站或者服務(wù)器不被攻下,沒(méi)有加密的必要。
數(shù)據(jù)庫(kù)和php程序在不同的服務(wù)器,就是說(shuō)你在操作數(shù)據(jù)庫(kù)的時(shí)候需要遠(yuǎn)程操作,這樣的話需要傳輸數(shù)據(jù)庫(kù)賬號(hào)密碼,可以在本地加密后傳輸,然后在數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行解密后,用原始的賬號(hào)密碼去操作數(shù)據(jù)庫(kù)。
--------------------------------------------------------一般來(lái)說(shuō),如果你擔(dān)心服務(wù)器被攻下,那么你加密數(shù)據(jù)庫(kù)賬號(hào)密碼是多余的,因?yàn)槿思蚁螺d你的源碼一看就知道鳥(niǎo)。