2009-11-07 51 views
4

在紅寶石加密的字符串,我使用「隱窩」方法加密的字符串,例如:在紅寶石,如何解密其通過「加密後」的方法

STR =「123」

strencrypt = str.crypt(「aa」)

我想從strencrypt解密並獲得原始字符串。我怎樣才能做到這一點? 我試圖再次使用隱窩方法:

str_ori = strencrypt.crypt( 「AA」)

但它不能返回 「123」。

任何人都可以幫到我嗎?

回答

3

str.crypt是一種單向加密散列。你不能解密字符串。

請參閱this question瞭解單向密碼散列的一般情況。

9

你不能 - 它是單向加密。如果你想知道爲什麼這是有用的,一個標準的使用情況是做密碼驗證:

pass = "helloworld" 
$salt = "qw" 
$cpass = pass.crypt($salt) 

def validate_pass(guess) 
    guess.crypt($salt) == $cpass 
end 

while true 
    puts "enter password" 
    pass = gets 
    if validate_pass(pass) 
    print "validated" 
    break 
    end 
end 

注意,validate_pass功能既沒有,也不需要訪問原始明文密碼。