Я пытаюсь создать систему входа в систему, хотя вместо ожидаемого получается очень странный результат. Вместо того, чтобы создать правильный хеш, он извергает случайный беспорядок Unicode. Хотя в моем примере кода используется SHA256, все остальные хэши, которые я могу создать, также делают это.
puts "Hello, welcome to CORIS. Please set up an account."
print "Username | "
user = gets.chomp
print "\nPass | "
pass = gets.chomp
userFile = File.open("user.keys", 'a+')
passFile = File.open("pass.keys", 'a+')
userFile.write(user)
passer = Digest::SHA256.digest "#{pass}"
puts passer
sleep(50)
Выход:
Loading CORIS.
Hello, welcome to CORIS. Please set up an account.
Username | zero
Pass | TheCorruption
F��
�ib�LoIe[�jN��u�b���#r�K��
Digest :: MD5.digest Вывод:
Loading CORIS.
Hello, welcome to CORIS. Please set up an account.
Username | zero
Pass | TheCorruption
�/�7dw{�:�A�����
Я переустановил драгоценный камень, есть идеи, что может быть причиной этого?

Методы digest не возвращают случайный беспорядок Unicode, они возвращают правильные хэши в двоичном формате. Если вы хотите увидеть "читаемую" версию, тогда hexdigest или base64digest:
Digest::SHA256.digest('pancakes')
# => "\xD0@;\xE2\x99\x9CH\x99\xEF:>=f\xD5]\xF4h\x9F\x7F\xC5~\xBF\x8A\xB5yu\x94\x92M\x12O\x99"
Digest::SHA256.hexdigest('pancakes')
# => "d0403be2999c4899ef3a3e3d66d55df4689f7fc57ebf8ab5797594924d124f99"
Digest::SHA256.base64digest('pancakes')
# => "0EA74pmcSJnvOj49ZtVd9Giff8V+v4q1eXWUkk0ST5k = "
Я должен был добавить, но сравнение хеша с самим собой дало бы false, но это решение проблемы, поэтому я отмечу его как таковой.