On 6 July 2010 10:34, Sumanta Das <li...@ruby-forum.com> wrote: > Or if there is any way so that I can encrypt my code > without interrupting the execution of the application.
You can do this (I've had to do it for a client) but it's not simple and I can't share my solution's code. However, you basically go along the lines that you have a class responsible for decrypting/encrypting code (I used Base64 encoded AES). You then have Rake tasks that go through all Ruby (I did YAML too as YAML files are executed as ERB first) files, encrypt the content and replace the file contents with contents like this: require 'config_decryptor' eval ConfigDecryptor.decrypt(...ENCRYPTED_CONTENT_HERE...) Your config_decryptor.rb file has to be in the load path - I handled this by requiring the full path in a config/preinitializer.rb file. The eval is done once as the Ruby class files are cached in memory during production mode. The next problem is getting the key in to Ruby. I did this by having a Rake task that puts it in to a specific named file in /tmp which is then read by my class (during a call in preinitializer.rb) and deleted. It's not ideal, but it works for my purpose and would also work for yours. The last step, if you're using Passenger ensure that the last child is never killed off (if it is, it will lose the decryption key which is now only in memory). I can't remember the setting but there's a timeout setting which you can set to zero so the last child never dies. I would however, recommend against doing this - server security and not giving out the username/password is far and away the best solution. I work in a specific industry in a country with a lot of security requirements so had no choice - but it's a solution and something I wished I never had to write ;-) Cheers, Andy -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.