3
SHA-1 แสดงว่าไม่ปลอดภัย ลองใช้ทางเลือกที่ปลอดภัยกว่าเช่น SHA-256 หรือ SHA-3 shattered.io
—
โจนัสElfström
คำตอบ:
require 'digest/sha1'
Digest::SHA1.hexdigest 'foo'
Digest::SHA1.base64digest 'foo'
Digest
เป็นส่วนหนึ่งของ Ruby Standard Library ( ruby-doc.org/stdlib-1.9.2/libdoc/digest/rdoc/index.html ) มันรวมถึงการใช้งานสำหรับ SHA1, SHA2, MD5 และอัลกอริทึมแฮชอื่น ๆ
สำหรับแฮชที่เข้ารหัส Base64 เพื่อตรวจสอบลายเซ็น Oauth ฉันใช้
require 'base64'
require 'hmac-sha1'
Base64.encode64((HMAC::SHA1.new('key') << 'base').digest).strip
ฉันสร้างอัญมณีตัวช่วยซึ่งเป็นเสื้อคลุมเรียบง่ายรอบ ๆ รหัส sha1
require 'rickshaw'
> Rickshaw::SHA1.hash('LICENSE.txt')
=> "4659d94e7082a65ca39e7b6725094f08a413250a"
> "hello world".to_sha1
=> "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
โดยที่ 'ซีเรียลไลซ์' คือฟังก์ชั่นผู้ใช้บางอย่างที่กำหนดไว้ที่อื่น
def generateKey(data)
return Digest::SHA1.hexdigest ("#{serialize(data)}")
end
require 'digest/sha1'
ใช้SHA1
วิธีการ