gpt4 book ai didi

ruby - 在 ruby​​ 中读取/写入密码保护和加密文件

转载 作者:数据小太阳 更新时间:2023-10-29 07:51:29 29 4
gpt4 key购买 nike

我想加密一个 ruby​​ 程序将从中加载数据的文件。此外,我需要程序在启动时提示输入用于解密文件的密码。

换句话说,文件需要加密保存在机器上,只有拥有密码的用户才能运行该应用。

我已经开始查看 openpgp,但据我了解,这仍然没有解决密码问题。

最佳答案

有两种简单的方法可以做到这一点。一种是支付 openssl 在那里进行加密/解密。可以说更好的方法是使用 Ruby Crypto gem .

加密程序:

require 'rubygems'
require 'crypt/blowfish';

puts "Password? "
pw = gets
puts "Secret data? "
data = gets
blowfish = Crypt::Blowfish.new(pw)
r = StringIO.new(data);
File.open('data', 'w') do |f|
while l = r.read(8) do
while l.size < 8 do l += "\0" end
f.print blowfish.encrypt_block(l)
end
end

解密程序:

require 'rubygems'
require 'crypt/blowfish';

puts "Password? "
pw = gets
blowfish = Crypt::Blowfish.new(pw)
r = StringIO.new();
File.open('data', 'r') do |f|
while l = f.read(8) do
r << blowfish.decrypt_block(l)
end
end
puts "Secret data:"
puts r.string

此示例使用 Blowfish 对称 block 密码。可以使用其他密码。此外,您可能希望将固定字符串连接到密码,以使 key 更长并帮助将加密/解密与您的应用程序联系起来。

关于ruby - 在 ruby​​ 中读取/写入密码保护和加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1104565/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com