Welcome

Delete this widget from your Dashboard and add your own words. This is just an example!

Facebook

Twitter

CORBA APLIKASI KEUANGAN

Thursday, June 27, 2013

                                                   ARSITEKTUR SISTEM TERDISTRIBUSI
             
    A. Sistem Terdistribusi 
    - Pemakain bersama sumber daya
    - Keterbukaan. Keterbukaan sistem adalah terbuka untuk banyak sistem operasi dan banyak vendor.
    - Konkurensi. Sitem terdistribusi memungkinkan beberapa proses dapat beroperasi pada saat yang sama pada berbagai computer di jaringan. Proses ini dapat (tapi tidak perlu) berkomunikasi satu dengan lainnya pada saat operasi normlnya.
   - Skalabilitas.  Sitem terdistribusi dapat diskala dengan menguprade atau menambahkan sumber daya baru untuk memenuhi kebutuhan sistem.
      - Toleransi kkesalahan. Sitem terdistribusi bersifat toleran terhadap beberapa kegagalan perangkat keras dan lunak dan layanan terdegradasi dapat diberikan ketika terjadi kegagalan.
      - Transparansi. Sitem terdistribusi adalah bersifat terbuka bagi user.

            Selain hal-hal tersebut ada juga kelemaham dari Sistem terdistribusi yaitu:
      - Kompleksitas. Sistem terdistribusi bersigat lebih kompleks daripada sistem sentral.
     - Keamanan. Sistem terdistribusi dapat diakses dari beberapa computer dan jalur jaringan mudah disadap, sehingga keamanan jarinagan sistem terdistribusi menjadi masalah yang besar.
    - Kemampuan untuk dikendalikan. Komputer yang terdapat di sistem terdistribusi bis aterdiri dari berbagai tipe yang berbeda dan mungkin dijalankan pada sistem operasi yang berbeda pula. Kesalahan pada satu mesin bisa berakibat pada yang lainnya.

            Sehingga harus banyak usaha untuk mengendalikannya.
      - Tidak dapat diramalkan. Sistem terdistribusi tidak dpat diramalkan tanggapannya.
        Tanggapan tergantung beban total sistem, pengorganisasian, dan beban jaringannya.
          
            Ada dua tipe generic arsitektur sistem terdistribusi yaitu:
            - Arsitektur Client Server.
        Sistem dianggap sebagai satu set layanan yang disediakan untuk klien. Server dan Client diperlakukan berbeda .
            - Arsitektur Objek Terdistribusi.
         Tidak ada perbedaan antara server dan client, sistem dapat sebagai satu set objek yang berinteraksi yang likasinya tidak relevan. Tidak ada perbedaan antara penyedia layanan dan user layanan.
            
B. Arsitektur Multiprosessor
            Model sistem terdistribusi yang paling sederhana adalah sistem multiprosessor dimana sistem terdiri dari sejumlah proses yang dapat berjalan pada beberapa prosessor yang terpisah. Model ini umumnya digunakan pada sistem real time yang besar.
           Penggunaan banyak prosessor ini berguna untuk memperbaiki kinerja dan fleksibilitas sistem. Distribusi proses ke prosessor dapat ditentukan sebelumnya atau bisa juga dikendalikan oleh dispatcher yang memutuskan proses mana yang akn dialokasikan ke masing-masing prosessor. Contoh tipe sistem ini dapat dilihat pada gambar 10.1 yang merupakan contoh model sistem control lau lintas. Satu set sensor terdistribusi mengumpulkan informasi dari aliran lalu lintas dan memproses informasi secara local sebelum mengirimnya ke ruangan control. operator mengambil keputusan dengan memakai informasi ini dan memberi instruksi ke proses control lampu liantas yang berbeda.Ada proses logika yang terpisah untuk menangani sensor ruangan control, dan lampu lalu lintas. Dan proses-proses ini berjalan pada prosesor yang terpisah.
Sistem perangkat lunak yang terdiri dari banyka proses tidak harus merupakan sistem terdistribusi. Memang jika tersedia lebih dari satu prosessor maka distribusi dapat diimplementasikan.  
            
C. Arsitektur Client Server   
            Seperti yang telah dijelaskan pada bab-bab sebelumnya model Arsitektur Cilent Server dimodelkan sebagai satu set layanan yang disediakan oleh server dan satu atau lebih client yang memakai layanan server. Client tidak perlu menyadari keberadaan server tetapi juga sebaliknya tidak mengetahui keberadaan klien yang lain. Tidak harus ada pemetaan 1:1 antara proses dan prosesor pada sistem. Hal tersebut bisa dilihat pada contoh gambar 10.2 dan dimana ada arsitektur fisik dengan enam kompuetr client dan dua server. Dan untuk proses logika dari gambar 10.2 adalah ditunjukkan pada gambar 10.3 


Perancangan arsitektur C/S harus mempertimbangkan struktur logika aplikasi yang ditunjukkan pada gambar 10.4 yang menunjukkan aplikasi dibagi tiga lapisan yaitu :
           - Lapisan Presentasi, yang berhubungan dengan penyajian informasi ke user dan dengan semua interaksi user.
                - Lapisan Pemrosesan Aplikasi, yang berhubungan dengan implementasi logika aplikasi
                - Lapisan Manajemen Data, yang berhubungan dengan operasi database.
           
            Arsitektur C/S yang paling sederhana disebut arsitektur C/S Two Tier, diaman aplikasi diorganisir seperti server dan satu set klien seperti pada gambar 10.5 dimana arsitektur C/S Two Tier memiliki dua bentuk yaitu:
           
            - Model Thin Client.
            Pada model ini semua pemrosesan aplikasi dan manajaemen data dilakukan pada server. Klien bertanggung jawab untuk menjalankan perangkat lunak presentasi yang biasanya hanya berbentuk interface sistem atau GUI.
            Kelebihan:
            -Biaya lebih rendah
            - Lebih cocok untuk model jaringan yang sederhana
            Kekurangan:
            - Menempatkan beban berat pemrosesan pada server
            - Ada kekuatan pemrosesan yang besar yang tersedia pada PC modern dan tidak digunakan pada client
            - Model Fat Client
            Pada model ini server hanya bertanggung jawab pada manajemen data. Perangkat client bertanggung jawab pada logika aplikasi dan interaksi denga user.
            Kelebihan:
            - Menggunakan kekuatan pemrosesan yang besar dan mendistribusikan pemrosesan logika aplikasi dan prsentasi pada klien o Server hanya menangani seluruh transaksi database 115
            - Pendistribusian pemrosesan lebih efektif
            Kekurangan :
            - Manajemen sistemnya lebih komplek
            - Biayanya lebih besar
           
            Contoh dari model arsitektur C/S Two Tier  dapat dilihat pada gambar 10.4 tentang jaringan ATM. Pada gambar tersebut ATM tidak berhubungan langsung dengan database nasabah, tetapi terhubung ke monitor teleprocessin g. Monitor teleprocessing (TP) merupalan middleware yang mengatur komunikasi dengan client jarak jauh ( remote) dan menserikan transaksi client untuk diproses oleh database. Menggunakan transaksi serial  berarti bahwa sistem dapat pulih dari kesalahan tanpa merusak data sistem.
Munculnya Java dan applet yang dapat di download secara gratis memungkinkan pengembangan sistem C/S antar model thin dan fat client. Beberapa pernagkat lunak pemrosesan aplikasi dapat didownload ke client seperti Java Applet sehingga mengurangi beban pada server. Interface User dibangun dengan web browser yang dapat menjalankan Java applet.
           
            Masalah terpenting pada arsitektur two tier C/S adalah ketiga lapisan logika harus dipetakan ke dua sistem computer. Mungkin ada masalah skalabilitas dan kinerja jika dipilih model thin client.  Mungkin pila ada masalah manajemen sistem jika dipilih fat client.  Untuk mengatasi masalah ini pendekatan alternative menggunakan arsitektur three tier client server (ditunjukkan pada gambar 10.5). Pada arsitektur ini tidak mesti diartikan bahwa terdapat tiga computer ynag terhubung ke jaringan . Satu computer server dapat menjalankan pemrosesan aplikasi dan manajemen data aplikasi sebagai server logika yang terpisah. Tetapi jika permintaan bertambah, pemisahan pemrosesan aplikasi dan 116
            manajamen data dapat dilakukan dengan langsung dan eksekusi dilakukan pada prosesor yang terpisah.

Sistem Internet banking merupakan salah satu contoh sistem arsitektur three tierC/S.  Database nasabah bank menyediakan layanan manajemen data, web server menyediakan layanan aplikasi seperti fasilitas transfer uang tunai, membayar tagihan, dll.

            Komputer nasabah dengan browser internet merupakan client. Sistem ini mudah diskala untuk menambahkan web server baru dengan bertambahnya jumlah nasabah.
           
          
Kelebihan sistem Three Tier C/S adalah diantaranya: 
-Transfer informasi antara web server dan server database optimal 
- Komunikasi aantara sistem-sistemtidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebih cepat dan berada pada tingkat yang lebih rendah.
- Penggunaan middleware mendukung efesien query database dalam SQL dipakai untuk menangani pengambailan informasi dari database.


D. Middleware
              Seperti yang sudah dijelaskan di bagian sebelumnya arsitektur sistem yang terdistribusi membutuhkan middleware (object request broker) untuk menangani komunikasi antar objek-objek. Pada prinsipnya, objek-objek pada sistem dapat diimplementasikan dengan bahasa pemrograman yang berbeda, dapat berjalan pada platform yang berbeda dan namanya tidak perlu diketahui semua objek lain pada sistem.
          Pada saat ini ada dua standar utama middleware untuk mendukung komputasi objek terdistribusi yaitu:
            - CORBA ( Command Object Request Broker Architecture) CORBA merupakan satu set standar middleware yang dikeluarkan oleh OMG
            ( Object Management Group). Standar CORBA mendefinisikan pendekatan yang tidak dependen mesin dan generic terhadap komputasi objek terdistribusi. Sejumlah implementasi ini tersedia untuk aplikasi sistem operasi UNIX dan Microsoft.
            - DCOM ( Distributed Component Object Mode) DCOM dikembangkan oleh Microsoft . Model komputasi tersditribusinya kurang umum dari model CORBA dan DCOM memberikan dukungan yang terbatas pada interoperabilitas.
            - RMI (Remote Method Invocation)
            Dikembangkan oleh Java.
           
            CORBA dikembangkan oleh OMG yang berperan dalam mendefinisikan standar untuk pengembangan berorientasi objek tetapi tidak menyediakan implementasi untuk standar ini.
            Visi OMG tentang sistem terdistribusi ditunjukkan pada gambar 10.7 yang mengusulkan agar aplikasi terdistribusi terbuat dari sejumlah komponen yaitu:
          • Objek APlikasi, yang dirancang dan diimlemantasi untuk aplikasi ini.
      • Objek Standar, Yang didifinisikan oleh OMG untuk domain khusus misalnya untuk masalah keuangan, e-commerce, kesehatan dll.
          • LAyanan CORBA, fundamental yang menyediakan layanan komputasi terdistribusi dasar seperti direktori, manajemen sekuritas, dll.
          • Fasilitas CORBA horizontal, seperti fasilitas interface user, manajemen sistem, dll.
            Istilah horizontal berarti fasilitas bersifat umum untuk banyak domain aplikasi.
           
Standar CORBA mencakup semua aspek visi ini . ada empat elemen utama untuk standar ini yaitu:
             1. Model objek untuk aplikasi ini objek CORBA merupakan encapsulasi status dengan interface yang terdefinisi dan disdeskripsikan dalam IDL ( interface Definition Language).
             2. Object Request Broker (ORB),  yang menangani permintaan layanan objek. ORB
         mencari objek yang menyediakan layanan tersebut, menyediakannya untuk permintaan, mengirimkan dan mengembalikan hasilnya kepada pemohon.
         3. Satu set layanan objek, yang menyediakan layanan umum dan mungkin diperlukan oleh banyak aplikasi terdistribusi. Contoh layanan ini adalh layanan direktori, layanan transaksi,
         4. Satu set komponen umum,  yang dibangun di atas layanan=layanan dasar yang mungin dibutuhkan oleh aplikasi.  
           
            Objek CORBA memiliki identifier unik yang dinamakan Interoperable Object Reference (IOR) yang digunakan ketika satu objek meminta layanan dari yang lain.
             Object Request Broker (ORB) tahu mengenai objek yang meminta layanan dan interface mereka. ORB menangani komunikasi diantara objek-objek tersebut. Objek-objek 119
            yang berkomunikasi tidak perlu mengetahui lokasi objek lain dan implementasinya. Karena interface mengisolasi objek dari ORB, maka perubahan implementasi objek dilakukan dengan cara yang transparan. Lokasi objek dapat berubah antara invokasi dn hal ini transparan bagi objek lainnya pada sistem tersebut.
           
            Hal ini dapat dilihat pada gambar 10.8 yang mengilustrasikan bagaimana dua objek o1  dan  o2 berkomunikasi melakui ORB. Objek pemanggil (O1) memiliki IDL stub yang berhubungan dengan interface objek yang memberikan layanan yang dibutuhkan.
           
            Implementator o1 menggabungkan panggilan untuk stub ini pada implementasi objek ketika layanan dibutuhkan. IDL merupakan superset C++ segingga mudah untu mengaksesnya. Pemetaan ke IDL juga telah didefinikan untuk bahasa laian seperti ADA dan COBOL yang mendukung link ke IDL. Objek yang menyediakan layanan memiliki IDL skeleton yang berhubungan ke interface untuk aplikasi layanan. JAdi ketika layanan dipanggil melalui interface, IDL skeletonmenerjemahkan panggilan ini menjadi panggilan layanan dalam bahasa implemenatsi apapun yang digunakan. Ketika metode atau prosedur telah dilaksanakan, IDL skeleton menerjemahkan hasilnya menjadi IDL sehingga dapat diakses oleh objek yang memanggil. Ketika objek menyediakan layanan ke objek lain dan menggunkan layanan yang disediakan ditempat lain, objek tersebut membutuhkan IDL

            skeleton dan IDL Stub . IDL stub dibutuhkan oleh setiap objek yang dipakai.
            



Free Template Blogger collection template Hot Deals BERITA_wongANteng SEO theproperty-developer

MD5

Wednesday, June 5, 2013

     Dalam kriptografiMD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah berkas.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
Sejarah dan kriptoanalisis 
MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 —MD4 — mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin). 
Pada tahun 1993den Boer dan Bosselaers memberikan awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari fungsi kompresi MD5. Dua vektor inisialisasi berbeda I dan  J dengan beda 4-bit di antara keduanya



Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti WHIRLPOOLSHA-1 atau RIPEMD-160. 
Ukuran dari hash — 128-bit — cukup kecil untuk terjadinya serangan brute force birthday attackMD5CRK adalah proyek distribusi mulai Maret 2004 dengan tujuan untuk menunjukka kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute force attack.
Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004, saat kerusakan ''hash'' pada MD5 diumumkan oleh Xiaoyun WangDengguo FengXuejia Lai dan Hongbo Yu Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005Arjen Lenstra, Xiaoyun Wang, and Benne de Weger mendemontrasikan kunstruksi dari dua buah sertifikat X.509 dengan public key yang berbeda dan hash MD5 yang sama, hasil dari demontrasi menunjukkan adanya kerusakan. Konstruksi tersebut melibatkan private key untuk kedua public key tersebut. Dan beberapa hari setelahnya, Vlastimil Klimamenjabarkan dan mengembangkan algortima, mampu membuat kerusakan Md5 dalam beberapa jam dengan menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5 tidak bebas dari kerusakan.
Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah awalan dengan hash yang sama dapat dibangun, sebuah akhiran yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk akal. Dan dikarenakan teknik penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi arbitari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut memerlukan pembangkitan dua buah berkas perusak sebagai berkas templat, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte batasan, berkas-berkas tersebut dapat mengubah dengan bebas dengan menggunakan algoritma penemuan kerusakan.
Efek nyata dari kriptoanalisis 
Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128), tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya adalah hal yang sulit. 
Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public keyhash MD5 tidak mengenalinya secara berbeda jika terdapat public key selanjutnya yang mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan serangan preimage, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan preimage kedua, menemukan pesan dengan hash MD5 yang sama sebagai pesan yang diinginkan. 
Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap, masih dinilai aman untuk saat ini. Khususnya pada digital signature lama masih dianggap layak pakai. Seorang pengguna boleh saja tidak ingin membangkitkan atau mempercayai signature baru menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash) akan memberikan perubahan yang berarti.
Penjaminan ini berdasar pada posisi saat ini dari kriptoanalisis. Situasi bisa saja berubah secara tiba-tiba, tetapi menemukan kerusakan dengan beberapa data yang belum-ada adalah permasalahan yang lebih susah lagi, dan akan selalu butuh waktu untuk terjadinya sebuah transisi.
Pengujian Integritas 
Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk menyediakan semacam jaminan bahwa berkas yang diambil (download) belum terdapat perubahan. Seorang pengguna dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari berkas yang diambil. Dengan asumsi bahwa checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang pengguna dapat secara yakin bahwa berkas tersebut adalah berkas yang sama dengan berkas yang dirilis oleh para developer, jaminan perlindungan dari Trojan Horse dan virus komputeryang ditambahkan pada perangkat lunak. Bagaimanapun juga, seringkali kasus yangterjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan tempat mengambil berkas), dalam hal ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali berkas yang didownload tidak sempurna, cacat atau tidak lengkap.
Algoritma 

Gambar 1. Satu operasi MD5 — MD5 terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi.F adalah fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan blok 32-bit dari masukan pesan, dan Ki menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi.
menunjukkan perputaran bit kiri oleh ss bervariasi untuk tiap-tiap operasi. Description: tambahan menunjukan tambahan modulo 232. MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, menunjukkan ABC dan D. Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok melakukan pengubahan terhadap kondisi.Pemrosesan blok pesan terdiri atas empat tahap, batasan putaran; tiap putasan membuat 16 operasi serupa berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Gambar satu mengilustrasikan satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap putaran:





menunjukkan operasi logikan XOR, AND, OR dan NOT.
Pseudocode 
Pseudocode pada algoritma MD5 adalah sebagai berikut.
//Catatan: Seluruh variable pada unsigned integer 32-bit dan dan wrap modulo 2^32 saat melakukan perhitungan

//Mendefinisikan r sebagai berikut
var int[64] r, k
r[ 0..15] := {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22}
r[16..31] := {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}
r[32..47] := {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}

//Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta:
for i from 0 to 63
    k[i] := floor(abs(sin(i + 1)) × 2^32)

//Inisialisasi variabel:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476

//Pemrosesan awal:
append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit length of message as 64-bit little-endian integer to message

//Pengolahan pesan paada kondisi gumpalan 512-bit:
for each 512-bit chunk of message
    break chunk into sixteen 32-bit little-endian words w(i), 0 ≤ i ≤ 15

    //Inisialisasi nilai hash pada gumpalan ini:
    var int a := h0
    var int b := h1
    var int c := h2
    var int d := h3

    //Kalang utama:
    for i from 0 to 63
        if 0 ≤ i ≤ 15 then
            f := (b and c) or ((not b) and d)
            g := i
        else if 16 ≤ i ≤ 31
            f := (d and b) or ((not d) and c)
            g := (5×i + 1) mod 16
        else if 32 ≤ i ≤ 47
            f := b xor c xor d
            g := (3×i + 5) mod 16
        else if 48 ≤ i ≤ 63
            f := c xor (b or (not d))
            g := (7×i) mod 16

        temp := d
        d := c
        c := b
        b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b
        a := temp

    //Tambahkan hash dari gumpalan sebagai hasil:
    h0 := h0 + a
    h1 := h1 + b
    h2 := h2 + c
    h3 := h3 + d

var int digest := h0 append h1 append h2 append h3 //(diwujudkan dalam little-endian)
Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering digunakan untuk meningkatkan efisiensi:
(0  ≤ i ≤ 15): f := d xor (b and (c xor d))
(16 ≤ i ≤ 31): f := c xor (d and (b xor c))
Hash-hash MD5 
Hash-hash MD5 sepanjang 128-bit (16-byte), yang dikenal juga sebagai ringkasan pesan, secara tipikal ditampilkan dalam bilangan heksadesimal 32-digit. Berikut ini merupakan contoh pesanASCII sepanjang 43-byte sebagai masukan dan hash MD5 terkait:
MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6
Bahkan perubahan yang kecil pada pesan akan (dengan probabilitas lebih) menghasilkan hash yang benar-benar berbeda, misalnya pada kata "dog", huruf d diganti menjadi c:
MD5("The quick brown fox jumps over the lazy cog") = 1055d3e698d289f2af8663725127bd4b
Hash dari panjang-nol ialah:
MD5("") = d41d8cd98f00b204e9800998ecf8427e



Free Template Blogger collection template Hot Deals BERITA_wongANteng SEO theproperty-developer