Files
news.gitea.happylizard.me/bin/gems/facets-3.1.0/lib/standard/facets/digest/salted_digest.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

45 lines
967 B
Ruby

require 'digest'
require 'facets/string/random_binary'
module Digest
module Instance
# CREDIT: Guido De Rosa
def salted_digest(str='', salt=:auto)
if salt == :auto
salt = String.random_binary(digest_length)
end
digest(str + salt) + salt
end
# CREDIT: Guido De Rosa
def salted_hexdigest(str, salt)
Digest.hexencode(salted_digest(str, salt))
end
# CREDIT: Guido De Rosa
def salted_base64digest(str, salt)
[salted_digest(str, salt)].pack('m0')
end
end
class Class
# CREDIT: Guido De Rosa
def self.salted_digest(str, salt=:auto, *args)
new(*args).salted_digest(str, salt)
end
# CREDIT: Guido De Rosa
def self.salted_hexdigest(str, salt=:auto, *args)
new(*args).salted_hexdigest(str, salt)
end
# CREDIT: Guido De Rosa
def self.salted_base64digest(str, salt=:auto, *args)
new(*args).salted_base64digest(str, salt)
end
end
end