我有以下字段的数据库: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