This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
ruby-des /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Feb 18 19:25:05 -0800 2009 | |
| |
MIT-LICENSE | Wed Feb 18 19:24:06 -0800 2009 | |
| |
README | Wed Feb 18 19:24:06 -0800 2009 | |
| |
Rakefile | Thu Jun 25 08:11:41 -0700 2009 | |
| |
lib/ | Mon Sep 01 22:00:27 -0700 2008 | |
| |
test/ | Sun Aug 03 17:33:34 -0700 2008 |
README
== RubyDES RubyDES is a full Ruby implementation of the Data Encryption Standard. The purpose of this project was to allow Ruby programmers interested in cryptography a glimpse of how a robust cryptographic algorithm functions in a language they understand. The best way to understand the RubyDES source code is by following along with a FIPS 46, which you can find at http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf NOTE: DES is deprecated, and as such, you should not use this implementation in any project you are developing. I highly recommend the AES, TwoFish or Serpent algorithms through the OpenSSL library instead. == Running RubyDES Using RubyDES is pretty easy. First, construct a new data and key block. data = RubyDES::Block.new('mysecret') key = RubyDES::Block.new('hushhush') Then, build a new <tt>RubyDES::Ctx</tt> object and supply the data and key block. des = RubyDES::Ctx.new(data, key) Finally, let it rip. encrypted_data = des.encrypt You will then be returned a DES encrypted block that is completely secure against eavesdropping (if it were still 1997). To decrypt an encrypted data block, just build a new <tt>RubyDES::Ctx</tt> object in similar fashion as before. un_des = RubyDES::Ctx.new(encrypted_data, key) And run the DES with the key schedule reversed. decrypted_data = un_des.decrypt You can then check to see if it all worked. data.bit_array.eql?(decrypted_data.bit_array) Enjoy! == Feedback If you have any questions, comments or just want to talk shop about crypto, feel free to reach me through my website at http://www.robertsosinski.com.







