Skip to content

Instantly share code, notes, and snippets.

View RiANOl's full-sized avatar

Rianol Jou RiANOl

View GitHub Profile

Keybase proof

I hereby claim:

  • I am RiANOl on github.
  • I am rianol (https://keybase.io/rianol) on keybase.
  • I have a public key whose fingerprint is 51C5 97E3 1F80 3F1F 53C5 A72C 0EC9 F1C1 A5C4 50D6

To claim this, I am signing this object:

@RiANOl
RiANOl / gist:1077760
Last active April 13, 2024 06:17
AES128 / AES256 CBC with PKCS7Padding in Ruby
require "openssl"
require "digest"
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
@RiANOl
RiANOl / gist:1077723
Last active April 4, 2024 08:34 — forked from anonymous/gist:957281
AES128 / AES256 CBC with PKCS7Padding in PHP
<?
function aes128_cbc_encrypt($key, $data, $iv) {
if(16 !== strlen($key)) $key = hash('MD5', $key, true);
if(16 !== strlen($iv)) $iv = hash('MD5', $iv, true);
$padding = 16 - (strlen($data) % 16);
$data .= str_repeat(chr($padding), $padding);
return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
}