29 มี.ค. 2554

NSCII Encryption การเข้ารหัสลับที่ไม่ลับ

NSCII Encryption

ช่วงของรหัสของ NSCII ( Natnuphoe Standard Code for Information Interchange ) มีดังนี้

9..0A..Zz..a

หมายความว่าในระบบของ NSCII

9 + 1 จะได้เป็น 8

8 + 2 จะได้เป็น 6

9 - 1 จะได้เป็น a

A + 1 จะได้เป็น B

Z + 1 จะได้เป็น z

z + 1 จะได้เป็น y

วิธีการเข้ารหัสแบบ Natnuphe มีดังนี้

บวกด้วย 1..26 เข้ากับแต่ละหลักของข้อมูล ทำซ้ำไปเรื่อยๆตามลำดับจนครบทุกตัว

เช่น

ตัวอักษรที่ 1 บวกกับ 1 ตัวอักษรที่ 2 บวกกับ 2 ...

ตัวอักษรที่ 27 จะบวกกับ 1 ตัวอักษรตัวที่ 28 จะบวกกับ 2 ...

ตัวอักษรที่ 53 ก็บวกด้วย 1 ... ทำไปเรื่อยๆจนครบทุกตัว

ทีนี้ก็มาลองเขียนโปรแกรมกันดูนะครับ ท่านใดที่มีโคดที่ทำงานเร็วกว่านี้ก็โพสได้นะครับ

public class NSCII {

    public static void main(String[] args) {

        //โจทย์

        String str_nscii = "7818354194C4FEAE57304ABADC2C437C068190EEC" +

                           "8A5BD9AC8B4634D95E97307991BECB4D6456D01DA" +

                           "D848301495F0EA0DEE07203418A72583E5DD79D66" +

                           "965ED2F20C4826F9FABDB206537363642DD656194";

        //ค่าของรหัส nscii ทั้งหมด

        String all_nscii ="9876543210ABCDEFGHIJKLMNOPQRSTUVWXYZ" +

                          "zyxwvutsrqponmlkjihgfedcba";

        String result_nscii = "";

        int num_plus = 1;

        for(int i=0;i< str_nscii.length();i++){

            int index = all_nscii.indexOf(str_nscii.charAt(i));

            if(num_plus==27)

                num_plus=1;

            int int_nscii=index+num_plus;

            result_nscii = result_nscii+""+all_nscii.charAt(int_nscii);  

            num_plus++;

        }

        System.out.println(result_nscii);

    }

}



เป็นไงครับใช้วิธีการหา index ของตำแหน่งที่ตรงกันและบวกเพิ่มตำแหน่งของ nscii ไปเรื่อยๆ

ลองเข้าไปเล่นดูได้นะครับที่ลิงค์ด้านล่าง

http://try2hack.siamdev.net/

Credit SiamDev.net

1 ความคิดเห็น: