Monday, April 25, 2016

[Python] Pycrypto: Python Cryptography Toolkit - Crypto.Hash

Pycrypto atau Python Cryptography toolkit, merupakan sebuah modul untuk fungsi kriptograpi pada python. Dari sumber developer pycrypto, module ini memiliki berbagai fungsi enkripsi seperti hash functions yang terdiri dari SHA256, RIPEMD160 dan berbagai algoritma enkripsi seperti AES,DES, RSA dan E1Gamal dan lain - lainya.

Cypto.Hash: Hash Functions
Fungsi hash atau algoritma hash mengambil sebuah strings sebagai input dan menghasilkan fixed-length string berdasarkan input, bisa dikatakan output string disebut nilai hash. Nilai hash dari fungsi hash memiliki panjang yang tetap(digest length) misalkan 128-bit untuk MD2,MD4,MD5,RIPEMD 160-bits dan SHA160-bits. Berikut contoh penggunaan pycrypto.


SHA-256

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import SHA256
>>> SHA256.new('blogtws.com keren').digest()
'O\xe1?\xfb\x15`\xc5jv\x92\xb1\xd5>"\xb8G\xc7`|\xd0.|\xf2\xd1\xb1\xe5k\xe1h\xfe\xd0\xad'
>>> SHA256.new('blogtws.com keren').hexdigest()
'4fe13ffb1560c56a7692b1d53e22b847c7607cd02e7cf2d1b1e56be168fed0ad'
>>> 

MD5

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import MD5
>>> MD5.new('blogtws.com keren').digest()
'\xaa\xce\x0c\xa5\x92\xe3\xd2y\x98*\x13\x98Q\xce`>'
>>> MD5.new('blogtws.com keren').hexdigest()
'aace0ca592e3d279982a139851ce603e'
>>>

RIPEMD

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import RIPEMD
>>> RIPEMD.new('blogtws.com keren').digest()
"\xb18\x1a\xc0\xd7\xa0\x15u\x93\x99\xac\xff\xb2'}\xb2sA\xc6\xfb"
>>> RIPEMD.new('blogtws.com keren').hexdigest()
'b1381ac0d7a015759399acffb2277db27341c6fb'
>>> 

SHA384

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import SHA384
>>> SHA384.new('blogtws.com keren').digest()
'nzh&\xfdm\xac\xba\xb3\x80\xae\x99\xb0\x0e\xac\xdc\xfeg\xe5\xaepg\xef:r\x0e\x7ff\xb7\xfd*&r\x86\xefr?\xbe@_\x92\x0c\xfdx\xe8\x05c\xac'
>>> SHA384.new('blogtws.com keren').hexdigest()
'6e7a6826fd6dacbab380ae99b00eacdcfe67e5ae7067ef3a720e7f66b7fd2a267286ef723fbe405f920cfd78e80563ac'
>>> 

SHA512

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import SHA512
>>> SHA512.new('blogtws.com keren').digest()
'b\xeaS\xf5s\x94\xc3Z\x9f\x0e\x99\x92F\xe2\xeb\xf9%\xb0\x95\x03t\x1c\xc8\xd2)\xcdO\xab\xdd?\xdb\xf4\xfc}\xe8\x18\xcdSi\x94\xa2I\xd9,[\xedgCv\xe9\x00Z\xfe\xc1\xd8\x8d\xe8\xb40=\xc4\xf7\xf0\xc7'
>>> SHA512.new('blogtws.com keren').hexdigest()
'62ea53f57394c35a9f0e999246e2ebf925b09503741cc8d229cd4fabdd3fdbf4fc7de818cd536994a249d92c5bed674376e9005afec1d88de8b4303dc4f7f0c7'
>>>

MD4

Python 2.7.9 (default, Mar  1 2015, 18:22:53) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Hash import MD4
>>> MD4.new('blogtws.com keren').digest()
'\x07Q\xe6\xef\xf0u1\xd0\x85\x96\xc2^\x92\xda\xb2n'
>>> MD4.new('blogtws.com keren').hexdigest()
'0751e6eff07531d08596c25e92dab26e'

digest() : nilai hashing dengan besar 8-bit
hexdigest() : nilai hashing dengan format hexadesimal

Referensi :

No comments:

Post a Comment