我有以下字段的數據庫:id
,q_id
,text
,session
等,我已經有2條記錄在那裏。我想用SHA1 alghoritm散列每一行(每一行當然都是唯一的)。我試過這個:SHA1散列在Rails
@w = Digest::SHA1.hexdigest(id+q_id+text+session)
但它不起作用。
我有以下字段的數據庫:id
,q_id
,text
,session
等,我已經有2條記錄在那裏。我想用SHA1 alghoritm散列每一行(每一行當然都是唯一的)。我試過這個:SHA1散列在Rails
@w = Digest::SHA1.hexdigest(id+q_id+text+session)
但它不起作用。
SHA不是加密,而是它創建了一個cryptographic hash。如果這仍然是你想要做的,我的猜測是id
和q_id
是Fixnums,需要轉換爲字符串。
@w = Digest::SHA1.hexdigest(ans.id.to_s + ans.q_id.to_s + ans.text + ans.session)
我也是那種喜歡用字符串常量,因爲它使得它很明顯,我們正在處理一個字符串
@w = Digest::SHA1.hexdigest("#{id}#{q_id}#{text}#{session}")
請參閱如何在ruby中創建SHA1哈希?(http://stackoverflow.com/questions/34490/how-do-i-create-a-sha1-hash-in-ruby ) – 2013-08-22 01:34:40
1)SHA1是哈希,不進行加密。檢查例如維基百科(http://en.wikipedia.org/wiki/Cryptographic_hash_function)以瞭解基本知識。 2)什麼*確切*不起作用? – atzz 2011-03-28 07:58:11
SHA-1已被證明是不安全的。考慮使用更安全的替代品,例如SHA-256或SHA-3。 https://shattered.io/ – 2017-03-23 12:53:50