Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 16th, 2012  |  syntax: None  |  size: 1.11 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. require 'rubygems'
  2. require 'openssl'
  3. require 'base64'
  4. require 'crypt/rijndael'
  5.  
  6. def enc_this
  7.  
  8.         key = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
  9.         iv  = '1111111111111111'
  10.  
  11.         stage0 = "some shit we want to encode"
  12.         puts "stage0: " + stage0
  13.  
  14.         stage1 = pad_data(stage0)
  15.         puts "stage1: " + stage1
  16.  
  17.         stage2 = b64safe(stage1)
  18.         puts "stage2: " + stage2
  19.  
  20.         stage2debug = b64safe(stage2)
  21.         puts "stage2: " + stage2debug + " (debug plaintext base64)"
  22.  
  23.         stage3 = Crypt::Rijndael.new( key, 128, 128 ).encrypt_string(stage2, iv)
  24.         puts "stage3: " + stage3
  25.  
  26.         stage4 = Base64.encode64(stage3).strip!.gsub!(/\n/, '')
  27.         puts "stage4: " + stage4
  28.  
  29. end
  30.  
  31. def pad_data(data, size = 16)
  32.         pad = size - data.length % size
  33.         padding = '_'.strip.gsub(/\n/, '') * pad
  34.         return padding + data
  35. end
  36.  
  37. def b64safe(data)
  38.         mash = Base64.encode64(data)
  39.  
  40.         if mash !~ /\n/
  41.                 return mash
  42.         else
  43.                 mash.strip!.gsub!(/\n/, '')
  44.                 return mash
  45.         end
  46. end
  47.  
  48. enc_this