Morton Goldberg
9/18/2007 12:20:00 PM
On Sep 18, 2007, at 2:15 AM, Venkat Bagam wrote:
> Hi Folks,
>
> Yesterday, in my ruby application, I was needed to
> encrypt/decrypt a file. I searched for a 2-way encryption technique
> and
> ended up with ezcrypto gem. I thought to give it a test. I was able to
> encrypt the content and store it in a file but getting errors while
> decrypting the file content and writing to console. I couldn't figure
> out the problem. here is my code
>
> require 'rubygems'
> require 'ezcrypto'
>
> @key = EzCrypto::Key.with_password "private documents","salted hash"
> file1 = File.new("crypto.txt", "w")
> @encrypted = @key.encrypt "These are private documents"
> file1.puts @encrypted
> file1.close
> puts "Here is the content"
> file2 = File.read("crypto.txt")
> puts @key.decrypt file2
I think puts is adding a "\n" at the end of the file you write out as
crypto.txt. So from the point of view of @key.decrypt the file has
been corrupted. Try the following:
<untested>
@key = EzCrypto::Key.with_password "private documents","salted hash"
File.open("crypto.txt", "w") do |file1|
@encrypted = @key.encrypt "These are private documents"
file1.write @encrypted
end
puts "Here is the content"
file2 = File.read("crypto.txt")
puts @key.decrypt file2
</untested>
I couldn't test the above code because I don't have the ezcrypt gem.
Regards, Morton