休日の調べもの

調べものをしたときのメモ

DES暗号

DESです

python 

import pyDes;
des = pyDes.des('01234567',pyDes.CBC,"\0\0\0\0\0\0\0\0");
print des.encrypt('12345678').encode('hex')

PHP

<?php

$key = "01234567";
$str = "12345678";
$iv = hex2bin("0000000000000000");

$encrypt = openssl_encrypt($str,'des-cbc',$key,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING ,$iv);
$a=bin2hex($encrypt);
print $a;

 

3DESです

python

import pyDes

# 2 Key 3 DES ENCODE
data = "12345678"
des = pyDes.des('01234567',pyDes.CBC,"\0\0\0\0\0\0\0\0")
a=des.encrypt(data)
des2 = pyDes.des('76543210',pyDes.CBC,"\0\0\0\0\0\0\0\0")
b=des2.decrypt(a)
des3 = pyDes.des('01234567',pyDes.CBC,"\0\0\0\0\0\0\0\0")
c=des3.encrypt(b)
print c.encode('hex')


# Functional Equivalent 上記を1行で書く
k = pyDes.triple_des("0123456776543210", pyDes.CBC , "\0\0\0\0\0\0\0\0")
d = k.encrypt(data)
print d.encode('hex')

 

PHP

<?php

$key = "0123456776543210";
$str = "12345678";
$iv = hex2bin("0000000000000000");

$encrypt = openssl_encrypt($str,'des-ede-cbc',$key,OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING ,$iv);
$a=bin2hex($encrypt);
print $a;