Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Monday, April 25, 2016

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

Encryption Algorithms, menggunakan input string dan key untuk menghasilkan ciphertext. Chipertext memiliki 2 type antara lain Block Cipher dan Stream, untuk Block Ciphers bekerja pada ukuran 8 atau 16 byte, sedangkan stream ciphers bekerja pada bit-by-bit.

[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.

[Python] Informasi Service dari Port dan Network Protocol

Penggunaan socket.getservbyport(), untuk memberikan nama service, ketika kita menampilkan port yang diberikan.


#!/usr/bin/python2.7
#simpan dengan nama service.py
import socket

def find_service_name():
    list_port=[22,23,25,80,21,53,110,123,137,138,139,194,220]
    for port in list_port:
        print "Port: %s => service name %s" %(port, socket.getservbyport(port,'tcp'))

if __name__ == '__main__':
    find_service_name()


Pada socket.getservbyport(port,'tcp'), didefinisikan untuk port (22,23,25,80,21,53,110,123,137,138,139,194,220) dengan jenis port yaitu protokol tcp


$ python service.py 
Port: 22 => service name ssh
Port: 23 => service name telnet
Port: 25 => service name smtp
Port: 80 => service name http
Port: 21 => service name ftp
Port: 53 => service name domain
Port: 110 => service name pop3
Port: 123 => service name ntp
Port: 137 => service name netbios-ns
Port: 138 => service name netbios-dgm
Port: 139 => service name netbios-ssn
Port: 194 => service name irc
Port: 220 => service name imap3

Sunday, April 17, 2016

[Python] Mengetahui IP dari Sebuah Domain

Suatu alamat domain website,kadang kita perlu mengetahui berapakah alamat IP-nya, sebagai contoh untuk meng-lookup sebuah domain dengan library dari socket yaitu socket.gethostbyname(). untuk contoh pada kasus ini, kita ingin melihat alamat IP dari domain "google.com" sebagai remote hostname



#!/usr/bin/python2.7
#penggunaan fungsi socket.gethostbyname() untuk memberikan alamat ip hostname
#simpan dengan nama remote_domain.py

import socket

def main():

    domain= "google.com"
    print "Domain %s alamat ip nya %s " %(domain, socket.gethostbyname(domain))

if __name__ == '__main__':
    main()


$ python remote_domain.py
Domain google.com alamat ip nya 202.70.50.17

setelah di eksekusi (terhubung ke jaringan internet), socket.gethostbyname(domain) memberikan alamat IP dari domain "google.com" yaitu 202.70.50.17

[Python] Hostname,IPv4 Local Machine

Pemrograman python pada kali ini menggunakan modul socket.gethostname() dan socket.gethostbyname(string). Berikut source code sederhana menggunakan modul socket tersebut:


#!/usr/bin/python2.7
#Penggunaan socket.hostname() dan socket.gethostbyname(string)
#Simpan dengan nama local_machine.py

import socket

def main():
    #pengunaan socket.gethostname,untuk menampilkan hostname mesin
    host_local = socket.gethostname()
    #menampilkan alamat ip pada host local
    ip_address = socket.gethostbyname(host_local)
    print "host name : %s " % host_local
    print "IP address : %s " % ip_address

if __name__ == '__main__':
    main()

Setelah dieksekusi.

$ python local_machine.py 
host name : linux 
IP address : 127.0.1.1