如何解密crypt("name")
如何解密的crypt( 「名稱」)
回答
地穴 - 單向散列串
如果你想加密/解密,結賬[使用PHP來加密和解密的最佳方式?(http://stackoverflow.com/questions/1289061/best-way-to-use-php-to-encrypt-and-解密)。 – Konerak 2011-04-11 11:45:27
地穴是一個單向散列,你不能解密。
如果你想它比較對另一個字符串,你可以隱窩太然後比較兩個字符串加密後。
由於隱窩()產生一個散列解密是不可能的。如果您需要猜測原始數據(「名稱」),則可以使用蠻力算法和巨大字典的組合。
即使如此,你會努力獲得的任何地方,所以所有的暴力破解你將不會得到遠隱窩會隨機創建鹽。 – 2012-07-11 04:57:42
我找到mcrypt的一個例子,創建兩個功能,文本或二進制文件:
function MyDecrypt($input,$key){
/* Open module, and create IV */
$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
/* Initialize encryption handle */
if (mcrypt_generic_init($td, $key, $iv) != -1) {
/* 2 Reinitialize buffers for decryption */
mcrypt_generic_init($td, $key, $iv);
$p_t = mdecrypt_generic($td, $input);
return $p_t;
/* 3 Clean up */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
} // end function Decrypt()
function MyCrypt($input, $key){
/* Open module, and create IV */
$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
/* Initialize encryption handle */
if (mcrypt_generic_init($td, $key, $iv) != -1) {
/* 1 Encrypt data */
$c_t = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
return $c_t;
/* 3 Clean up */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
}
對於實施例隱窩的字符串:
$original_text = "Hello world !";
$password = "abc123";
echo '<p>Original_text: '.$original_text.'</p>';
$crypted_text = MyCrypt($original_text,$password);
echo '<p>Crypted_text: '.$crypted_text.'</p>';
$decrypted_text= MyDecrypt($crypted_text,$password);
echo '<p>Decrypted_text: '.$decrypted_text.'</p>';
echo '<p>And if I try with a wrong password?</p>';
$wrong_decrypted_text= MyDecrypt($crypted_text,"wrong_pw");
echo '<p>Decrypted with wrong password: '.$wrong_decrypted_text.'</p>';
我希望有幫助
注意,DES是遠遠不安全和更強的替代方案應當優選的(比方說,AES) ;而且使用ECB也是一個壞主意 - CBC對於大多數應用程序來說更安全。 – tucuxi 2015-05-25 15:54:44
你不能真正地將其解密,因爲有(無限)許多字符串,從而crypt($input) == crypt("name")
- 但你可以通過蠻力試錯,找到一些這些字符串的。
如果你知道或懷疑原始字符串是很短的字典中的單詞,你會發現這產生相同的輸出很短的字典中的單詞,那麼你已經「解密」的原始字符串。
md5和許多較弱的散列函數襲擊經常這樣。
<?php
$hashed_password = crypt('mypassword'); // let the salt be automatically generated
/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
echo "Password verified!";
}
?>
這不是根據要求「解密」。 – deceze 2018-01-22 11:50:42
- 1. 如何解密crypt的散列?
- 2. 如何解碼LDAP {crypt}密碼
- 3. 如何解密用crypt加密的PHP密碼字符串?
- 4. PHP crypt密碼
- 5. 如何檢查crypt(3)sha512的密碼?
- 6. Laravel Crypt ::解密遷移到ruby
- 7. 解密PHP crypt()函數無鹽
- 8. 如何在使用Laravel中的Crypt加密的Java(Android)文本中解密?
- 9. 加密使用PHP的crypt
- 10. 在PHP中使用crypt()加密密碼的安全性如何?
- 11. 如何獲取子密鑰的名稱?
- 12. 如何更改JSON密鑰的名稱?
- 13. Clojure如何解析名稱?
- 14. Coldfusion加密到perl crypt
- 15. Android AES crypt 192bit密鑰
- 16. 如何「解密」鏈接器方法名稱?
- 17. 加密名稱
- 18. 使用crypt加強密碼加密()
- 19. 使用Crypt :: RC4加密密碼問題
- 20. 在C++中使用用Crypt API加密的C++中的TripleDES解密文件
- 21. 如何獲得密鑰名稱id Id
- 22. 如何解決無效的列名稱?
- 23. 如何解析JavaScript中的HTML名稱?
- 24. 如何獲取PyWin32中提供密鑰的密鑰名稱?
- 25. JSON密鑰名稱?
- 26. 如何重置使用md5()和crypt生成的密碼()
- 27. AES crypt函數與C#和解密使用javascript
- 28. 如何加密/解密C#
- 29. 如何解密X509證書籤名
- 30. SHA256-CRYPT/SHA512-CRYPT中的node.js
如果你知道輸入是一個4個字母的單詞...你可以嘗試所有4個字母的單詞,直到一個匹配。 – tucuxi 2015-05-25 16:02:30