Chiper Vigenere code java untuk enkripsi dan dekripsi plainteks

 

Chiper Vigenere

Chiper Vigenere atau Sandi Vigenère merupakan salah satu penyandian bacaan alfabet dengan memakai sandi Caesar Cipher hendak namun alfabet yang dijadikan bagaikan kata kuncinya. Sandi Vigenère ialah wujud simpel dari sandi substitusi polialfabetik. Vigenere Chiper tercantum dalam cipher abjadmajemuk( polyalphabetic substitution Chiper) yang diterbitkan oleh diplomat( sekalian seseorang kriptologis) Perancis, Blaise de Vigenere pada abad 16 tahun 1586( Arjana et angkatan laut(AL). 2012).


Sandi Vigenère sesungguhnya ialah pengembangan dari sandi Caesar. Pada sandi Caesar, tiap huruf bacaan cerah digantikan dengan huruf lain yang mempunyai perbandingan tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran 3, A jadi D, B jadi E and serta seterusnya. Sandi Vigenère terdiri dari sebagian sandi Caesar dengan nilai geseran yang berbeda. setelah sebelumnya kita membahas tentang chiper transisi

 

contoh Chiper Vigenere

Plainteks: Semarang Kota Tercintaku

Karakter : S  Posisi : 18  Setelah di Putar : T  Posisi : 19

Karakter : E  Posisi : 4  Setelah di Putar : F  Posisi : 5

Karakter : M  Posisi : 12  Setelah di Putar : N  Posisi : 13

Karakter : A  Posisi : 0  Setelah di Putar : B  Posisi : 1

Karakter : R  Posisi : 17  Setelah di Putar : S  Posisi : 18

Karakter : A  Posisi : 0  Setelah di Putar : B  Posisi : 1

Karakter : N  Posisi : 13  Setelah di Putar : O  Posisi : 14

Karakter : G  Posisi : 6  Setelah di Putar : H  Posisi : 7

Karakter : K  Posisi : 10  Setelah di Putar : L  Posisi : 11

Karakter : O  Posisi : 14  Setelah di Putar : P  Posisi : 15

Karakter : T  Posisi : 19  Setelah di Putar : U  Posisi : 20

Karakter : A  Posisi : 0  Setelah di Putar : B  Posisi : 1

Karakter : T  Posisi : 19  Setelah di Putar : U  Posisi : 20

Karakter : E  Posisi : 4  Setelah di Putar : F  Posisi : 5

Karakter : R  Posisi : 17  Setelah di Putar : S  Posisi : 18

Karakter : C  Posisi : 2  Setelah di Putar : D  Posisi : 3

Karakter : I  Posisi : 8  Setelah di Putar : J  Posisi : 9

Karakter : N  Posisi : 13  Setelah di Putar : O  Posisi : 14

Karakter : T  Posisi : 19  Setelah di Putar : U  Posisi : 20

Karakter : A  Posisi : 0  Setelah di Putar : B  Posisi : 1

Karakter : K  Posisi : 10  Setelah di Putar : L  Posisi : 11

Karakter : U  Posisi : 20  Setelah di Putar : V  Posisi : 21

plain :SEMARANG KOTA TERCINTAKU

Enkrip :[T, F, N, B, S, B, O, H, L, P, U, B, U, F, S, D, J, O, U, B, L, V]

 

Code program java :

package com.darto.vigenecipher;

                public class v

                {

                    public static String encrypt(String text, final String key)

                    {

                        String res = "";

                        text = text.toUpperCase();

                        for (int i = 1, j = 1; i < text.length(); i++)

                        {

                            char c = text.charAt(i);

                            if (c < 'A' || c > 'Z')

                                continue;

                            res += (char) ((c + key.charAt(j) - 2 * 'A') % 26 + 'A');

                            j = ++j % key.length();

                        }

                        return res;

                    }

                

                    public static String decrypt(String text, final String key)

                    {

                        String res = "";

                        text = text.toUpperCase();

                        for (int i = 0, j = 0; i < text.length(); i++)

                        {

                            char c = text.charAt(i);

                            if (c < 'A' || c > 'Z')

                                continue;

                            res += (char) ((c - key.charAt(j) + 26) % 26 + 'A');

                            j = ++j % key.length();

                        }

                        return res;

    }

 

                    public static void main(String[] args)

                    {

                        String key = "MYJAVALAMP";

                        String message = "Blog saya ada di blogspot !";

                        String encryptedMsg = encrypt(message, key);

                        System.out.println("String: " + message);

                        System.out.println("Encrypted message: " + encryptedMsg);

                        System.out.println("Decrypted message: " + decrypt(encryptedMsg, key));

                    }

 

                }

 

hasil code tersebut :


 

No comments:

Post a Comment

Iklan Atas Artikel

Meta Propeller atas artikel

cara mudah turial kode Java blog website grafika komputer jaringan komputer dan Arduino

Iklan Tengah Artikel 2

Iklan Bawah Artikel