Skip to content

Instantly share code, notes, and snippets.

@ashishwadekar
Forked from RiANOl/gist:1077760
Created August 17, 2023 15:53
Show Gist options
  • Select an option

  • Save ashishwadekar/4f8d934ee9c2b65b0e7fff49f1c8c014 to your computer and use it in GitHub Desktop.

Select an option

Save ashishwadekar/4f8d934ee9c2b65b0e7fff49f1c8c014 to your computer and use it in GitHub Desktop.

Revisions

  1. @RiANOl RiANOl revised this gist Jun 27, 2014. 1 changed file with 12 additions and 4 deletions.
    16 changes: 12 additions & 4 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -1,34 +1,42 @@
    require "openssl"
    require "digest"

    def aes128_encrypt(key, data)
    def aes128_cbc_encrypt(key, data, iv)
    key = Digest::MD5.digest(key) if(key.kind_of?(String) && 16 != key.bytesize)
    iv = Digest::MD5.digest(iv) if(iv.kind_of?(String) && 16 != iv.bytesize)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.encrypt
    aes.key = key
    aes.iv = iv
    aes.update(data) + aes.final
    end

    def aes256_encrypt(key, data)
    def aes256_cbc_encrypt(key, data, iv)
    key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
    iv = Digest::MD5.digest(iv) if(iv.kind_of?(String) && 16 != iv.bytesize)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.encrypt
    aes.key = key
    aes.iv = iv
    aes.update(data) + aes.final
    end

    def aes128_decrypt(key, data)
    def aes128_cbc_decrypt(key, data, iv)
    key = Digest::MD5.digest(key) if(key.kind_of?(String) && 16 != key.bytesize)
    iv = Digest::MD5.digest(iv) if(iv.kind_of?(String) && 16 != iv.bytesize)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.decrypt
    aes.key = key
    aes.iv = iv
    aes.update(data) + aes.final
    end

    def aes256_decrypt(key, data)
    def aes256_cbc_decrypt(key, data, iv)
    key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
    iv = Digest::MD5.digest(iv) if(iv.kind_of?(String) && 16 != iv.bytesize)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.decrypt
    aes.key = key
    aes.iv = iv
    aes.update(data) + aes.final
    end
  2. @RiANOl RiANOl revised this gist Feb 4, 2014. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -21,14 +21,14 @@ def aes128_decrypt(key, data)
    key = Digest::MD5.digest(key) if(key.kind_of?(String) && 16 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.decrypt
    aes.key = Digest::MD5.digest(key)
    aes.key = key
    aes.update(data) + aes.final
    end

    def aes256_decrypt(key, data)
    key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.decrypt
    aes.key = Digest::SHA256.digest(key)
    aes.key = key
    aes.update(data) + aes.final
    end
  3. Rianol Jou revised this gist Oct 3, 2011. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -2,27 +2,31 @@
    require "digest"

    def aes128_encrypt(key, data)
    key = Digest::MD5.digest(key) if(key.kind_of?(String) && 16 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.encrypt
    aes.key = Digest::MD5.digest(key)
    aes.key = key
    aes.update(data) + aes.final
    end

    def aes256_encrypt(key, data)
    key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.encrypt
    aes.key = Digest::SHA256.digest(key)
    aes.key = key
    aes.update(data) + aes.final
    end

    def aes128_decrypt(key, data)
    key = Digest::MD5.digest(key) if(key.kind_of?(String) && 16 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.decrypt
    aes.key = Digest::MD5.digest(key)
    aes.update(data) + aes.final
    end

    def aes256_decrypt(key, data)
    key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.decrypt
    aes.key = Digest::SHA256.digest(key)
  4. Rianol Jou revised this gist Sep 30, 2011. 1 changed file with 27 additions and 10 deletions.
    37 changes: 27 additions & 10 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,30 @@
    def aes256_ecb_pkcs7padding_encrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-ECB')
    aes.encrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    require "openssl"
    require "digest"

    def aes128_encrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.encrypt
    aes.key = Digest::MD5.digest(key)
    aes.update(data) + aes.final
    end

    def aes256_encrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.encrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    end

    def aes128_decrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-128-CBC')
    aes.decrypt
    aes.key = Digest::MD5.digest(key)
    aes.update(data) + aes.final
    end

    def aes256_ecb_pkcs7padding_decrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-ECB')
    aes.decrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    def aes256_decrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-CBC')
    aes.decrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    end
  5. RiANOl created this gist Jul 12, 2011.
    13 changes: 13 additions & 0 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    def aes256_ecb_pkcs7padding_encrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-ECB')
    aes.encrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    end

    def aes256_ecb_pkcs7padding_decrypt(key, data)
    aes = OpenSSL::Cipher.new('AES-256-ECB')
    aes.decrypt
    aes.key = Digest::SHA256.digest(key)
    aes.update(data) + aes.final
    end