A. 如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值(用php实现)
function file_read_all ($dir)
{
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$n=0;
while (($file = readdir($dh)) !== false) {
if ( $file == '.' or $file =='..' or $file=='.svn')
{
continue;
}
echo md5_file($dir.$file);//计算每个文件md5值 echo '<br />';
if (is_dir ($dir.$file))
{
file_read_all ($dir.$file.'/');
}
}
}
closedir($dh);
}
}
B. PHP 如何随机生成24位 MD5加密后的字符串
md5是32位的,所以你需要先生成md5,再进行字符串截取,截取24个长度就是24位了。
生成随机的为了不重复,可以使用当前时间戳,在加上随机数就行
$date_string = date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(100000, 999999);
$md5_string = md5($date_string);
$string = substr($md5_string, 0, 24);
echo $string;
C. 各位用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);
//
D. 鐢╬hp灏嗗瘑镰佸瓨鍏ユ暟鎹搴掳纴鐢ㄤ粈涔堟柟娉曡繘琛屽姞瀵
棰树富浣犲彲浠ヤ娇鐢 md5 鎴栬 sha1 杩涜屽埯姝ュ勭悊锛屼絾涓轰简镟村姞瀹夊叏锛岃蜂綘钖屾椂锷犱笂涓や釜 salt锛屼竴涓闱欐 salt锛屼竴涓锷ㄦ佺殑 salt銆备互 md5 涓轰緥锛歕x0dx0a锅囱鹃氲繃 POST 浼犳潵镄勫瘑镰佷负 $_POST['password']锛屽湪瀛桦叆 DB 鍓嶅厛杩涜屽备笅镄勬搷浣滐细x0dx0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);x0dx0ax0dx0a涓轰简淇濊瘉锷ㄦ salt 镄勫敮涓镐э纴鍙浠ヨ繖镙锋搷浣滐细x0dx0a$dynamicSalt = hash('md5', microtime());x0dx0ax0dx0a瀵逛簬锷ㄦ佺殑 salt 鍙浠ヤ笌鐢熸垚镄勫瘑镰佷竴璧蜂缭瀛桦湪 DB 涓锛岃岄润镐 salt 鍒椤彲浠ョ洿鎺ユ斁鍦ㄧ被鏂囦欢涓锛堜緥濡傚畾涔変负涓涓闱欐佸睘镐у嵆鍙锛夈俓x0dx0a棣栧厛璋㈣阿棰树富閲囩撼浜嗘垜镄勭瓟妗堬纴浣嗘槸鎴戜箣鍓岖殑锲炵瓟骞朵笉鏄链浣崇瓟妗堬纴涔嬫墍浠ユ湁姝ゅ姞瀵嗙殑𨱍虫硶婧愪簬镊宸辨墍璇荤殑婧愮爜鍙鑳芥瘆杈冭侊纴镓浠ュ苟娌′娇鐢ㄤ笂杈冩柊鐗堟湰镄勫姞瀵嗘柟娉曪纴渚嫔 bcrypt绛夈俓x0dx0a姝ゅ栵纴绗浜岀偣锛屾劅璋㈣瘎璁轰腑鍑犱綅鍓嶈緢镄勬彁镣癸纴宸茬粡鏄庣槠璁剧疆闱欐 salt 镄勬剰涔夊苟涓嶅ぇ锛岀敓鎴愪竴涓杈冮暱镄勫姩镐 salt 宸茬劧鍙浠ヨВ鍐抽梾棰樸俓x0dx0ax0dx0aLZ搴旇ラ噰鐢ㄥ姞鐩怘ASH銆俓x0dx0a濡备綍钬滆厡鍒垛濆瘑镰佸憿锛焅x0dx0a=_,=x0dx0a姝g‘镄勬牸寮忓簲璇ユ槸锛岀敤鎴穚assword+锷ㄦ佺殑saltx0dx0a锷ㄦ佺殑salt涓嶈兘镀2L镓璇寸殑锛屼娇鐢╩icrotime锛屽洜涓烘椂闂村湪镆愪簺𨱍呭喌涓嬩笉澶熼殢链猴纴钥屼笖鏄鍙鑳借鐚滆В镄勚俓x0dx0a杩欓噷鎺ㄨ崘涓涓鎴戠敤镄勫姞鐩怘ASHx0dx0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));x0dx0a$password=sha1($register_password.$salt);x0dx0ax0dx0a瑙i喷:x0dx0a棣栧厛浣跨敤mcrypt锛屼骇鐢熺数鑴戦殢链虹敓鎴愮殑锛屼笓闂ㄧ敤鎴峰姞瀵嗙殑闅忔満鏁板嚱鏁般俓x0dx0a绗浜屾ワ纴鎶婂缑鍒扮殑闅忔満鏁伴氲繃base64锷犲瘑锛屼娇鍏跺彉闀垮苟涓斾笉鍒╀簬鐚滆В銆俓x0dx0a绗涓夋ワ纴鎶婂缑鍑虹殑鐩愭嫾鎺ュ埌瀵嗙爜镄勫悗闱锛屽啀瀵瑰叾浣跨敤sha1杩涜屽搱甯孪x0dx0a鍐嶆妸password瀛桦叆鍒扮敤鎴风殑鏁版嵁搴撱俓x0dx0aPS锛氢负浣曚笉鐢ㄩ润镐佺殑salt锛熸病链夊繀瑕侊纴浣跨敤涓涓锷ㄦ侀殢链鸿冻澶熼暱镄勭洂瓒崇煟銆俓x0dx0a涓轰綍涓岖敤MD5锛熷洜涓洪暱搴︿笉澶熴俓x0dx0a涓轰綍娌℃湁浣跨敤澶氭HASH锛熷洜涓鸿繖镙峰弽钥屽规槗鍙戠敓纰版挒銆俓x0dx0aHASH濂戒箣钖庢庝箞浣跨敤钬滆厡鍒垛濆ソ镄勫瘑镰侊纻x0dx0a鐢ㄦ埛娉ㄥ唽->鎻愪氦瀵嗙爜->浜х敓salt->鑵屽埗濂界殑瀵嗙爜瀛桦叆鏁版嵁搴->salt瀛桦叆鏁版嵁搴撱俓x0dx0a鐢ㄦ埛锏诲綍->鎻愪氦瀵嗙爜->璋幂敤salt鎺ュ埌鎻愪氦瀵嗙爜镄勫悗闱->杩涜孒ASH->璋幂敤涔嫔墠娉ㄥ唽鑵屽埗濂界殑瀵嗙爜->瀵规瘆HASH鍊兼槸钖﹀拰杩欎釜瀵嗙爜鐩稿悓
E. python和php计算md5为什么不一样
#!/usr/bin/envpython
#-*-coding:UTF-8-*-
importhashlib
string='123456SkinRun51'
md5=hashlib.md5()
md5.update(string.encode('utf-8'))
res=md5.hexdigest()
print('md5加密后结果:',res)
-------------------------------------------
echomd5(utf8_encode('123456SkinRun51')).PHP_EOL;
exit();
叙述:python3.6.6 ;php7
F. 鍦≒HP寮鍙戜腑鍏绉嶅姞瀵嗙殑鏂规硶锛屼綘鐢ㄧ殑鏄鍝绉嶏纻
鍦≒HP寮鍙戠殑涓栫晫閲岋纴鏁版嵁镄勫畨鍏ㄦц呖鍏抽吨瑕併傝╂垜浠娣卞叆鎺㈣ㄥ叚绉嶅父瑙佺殑锷犲瘑鏂规硶锛岀湅鐪嬩綘鍦ㄥ疄闄呴”鐩涓鏄濡备綍杩愮敤镄勚
棣栧厛锛屾垜浠浠嶱HP鍐呯疆镄勫姞瀵嗗嚱鏁拌皥璧枫侾HP涓烘垜浠鎻愪緵浜嗕袱绉嶆埅铹朵笉钖岀殑锷犲瘑镓嬫碉细涓嶅彲阃嗙殑鍜屽彲阃嗙殑銆备笉鍙阃嗙殑濡md5()锛屽畠鐢熸垚镄勫搱甯屽兼槸鍗曞悜镄勶纴鐢ㄤ簬纭淇濇暟鎹镄勫敮涓镐э纴钥crypt()鍒欐槸鍗曞悜DES锷犲瘑锛岄傚悎浜庡瘑镰佸瓨鍌ㄣ傜浉鍙嶏纴base64_encode()鍜urlencode()杩欑被鏂规硶锛屽傜绣缁滀紶杈撴椂甯哥敤锛岄氲繃MIME BASE64缂栫爜渚夸簬璺ㄥ钩鍙颁紶杈掳纴浣嗗畠浠鏄鍙阃嗙殑锛屾湁瀵瑰簲镄勮В瀵嗗嚱鏁板base64_decode()銆
鎺ョ潃锛屾垜浠𨱒ョ湅涓や釜瀹为檯搴旂敤涓镄勫姞瀵嗗嚱鏁扮ず渚嬨备竴鏄lock_url()锛屽畠宸у椤湴缁揿悎浜哢RL缂栫爜鍜岀壒娈婂瓧绗︾殑澶勭悊锛岄氲繃绠楁硶灏呜緭鍏ョ殑瀛楃︿覆锷犲瘑钖庤繘琛屼紶杈撱傚彟涓涓鏄缁忚繃绮剧亩镄勫姞瀵嗗嚱鏁帮纴濡passport_encrypt()锛屽悓镙烽噰鐢ㄧ紪镰佸拰瀵嗛挜镎崭綔锛岀‘淇濇暟鎹鍦ㄤ紶杈扑腑镄勫畨鍏ㄦс
鍦ㄩ”鐩涓锛屾洿涓哄嶆潅镄勫姞瀵嗗勭悊鍙鑳芥秹鍙娄娇鐢ㄥauthcode()杩欐牱镄勮嚜瀹氢箟鍑芥暟銆傚畠镙规嵁杈揿叆镄勬槑鏂囥佹搷浣灭被鍨嬶纸锷犲瘑鎴栬В瀵嗭级鍜屽瘑阍ワ纴鐢熸垚锷ㄦ佸瘑阍ュ苟镓ц屽姞瀵嗘牳蹇幂畻娉曘傝繖绉嶅姛鑳藉湪鐢ㄦ埛锏诲綍楠岃瘉鍜孉PI鏁版嵁浜ゆ崲涓灏や负甯歌併
链钖庯纴璁╂垜浠鎺㈢储涓绉嶆洿涓虹伒娲荤殑锷犲瘑瑙e瘑妯″纺銆傞氲繃瀹氢箟鍑芥暟濡encrypt()锛屾垜浠鍙浠ヤ娇鐢∕D5浣滀负瀵嗛挜鐢熸垚鍣锛屽苟缁揿悎Base64缂栫爜锛屽疄鐜颁简鍙屽悜镎崭綔銆傝繖涓渚嫔瓙灞旷ず浜嗗备綍瀵瑰瓧绗︿覆杩涜屽姞瀵嗗拰瑙e瘑锛屼互婊¤冻涓嶅悓镄勫簲鐢ㄥ満鏅銆
鍦ㄤ綘镄凯HP寮鍙戞梾绋嬩腑锛岄夋嫨鍝绉嶅姞瀵嗘柟娉曞彇鍐充簬鍏蜂綋闇姹伞备笉鍙阃嗙殑鍝埚笇鍑芥暟阃傜敤浜庨獙璇佹暟鎹瀹屾暣镐э纴钥屽彲阃嗙殑缂栫爜鏂规硶阃傜敤浜庢暟鎹浜ゆ崲銆傝颁綇锛屾疮涓椤圭洰閮芥湁鍏剁壒瀹氱殑瀹夊叏瑕佹眰锛岄夋嫨阃傚悎镄勫姞瀵嗙瓥鐣ヨ呖鍏抽吨瑕併
鍦ㄨ拷姹傚畨鍏ㄧ殑钖屾椂锛屼笉瑕佸缮璁板叧娉ㄦ垜浠镄勫叕浼楀彿锛歅HP浠庡叆闂ㄥ埌绮鹃氾纴闾i噷链夋洿澶氲繘阒剁煡璇嗗拰瀹炵敤璧勬簮锛屽府锷╀綘鎻愬崌鎶鑳斤纴瑙e喅杩涢桩闂棰樸傛棤璁轰綘鏄鏂版坠杩樻槸璧勬繁寮鍙戣咃纴杩欓噷閮芥湁阃傚悎浣犵殑鍐呭广备竴璧锋帰绱PHP镄勬棤闄愬彲鑳斤纴鎻愬崌浣犵殑鎶链瀹炲姏銆
G. 在php5中md5在加密字符串后如何解密
MD5加密是不能逆运算的,现在的破解大都是穷尽法,就是有一个庞大的MD5码对照表放在那里,然后一个一个去对照着查。