diff --git a/space-hash.rb b/space-hash.rb new file mode 100644 index 0000000..91c3f1a --- /dev/null +++ b/space-hash.rb @@ -0,0 +1,31 @@ +require 'digest' + +def prompt(*args) + print(*args) + gets.chomp +end + +WHITESPACE = " \t\u200b\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000" + +def doit(message, regex, limit = 10) + return unless limit > 0 + + digest = Digest::SHA256.hexdigest message + if regex.match? digest + p message + puts digest + exit 0 + end + + WHITESPACE.each_char do |ws| + doit(message + ws, regex, limit - 1) + end +end + +message = prompt "Message: " +hash_regex = Regexp.new(prompt "Digest regex: ") + +doit(message, hash_regex) + +puts "i give up :(" +exit 1