生活随笔
收集整理的這篇文章主要介紹了
古典密码算法------替代密码算法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| 替代密碼算法的原理是使用替代法進行加密,就是將明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做對應替換后形成密文。 替代密碼包括多種類型,如單表替代密碼、多明碼替代密碼、多字母替代密碼、多表替代密碼等。下面我們介紹一種典型的單表替代密碼,愷撒(caesar)密碼,又叫循環(huán)移位密碼。它的加密方法,就是將明文中的每個字母用此字符在字母表中后面第k個字母替代。它的加密過程可以表示為下面的函數(shù): E(m)=(m+k) mod n 其中:m為明文字母在字母表中的位置數(shù);n為字母表中的字母個數(shù);k為密鑰;E(m)為密文字母在字母表中對應的位置數(shù)。 例如,對于明文字母H,其在字母表中的位置數(shù)為8,設k=4,則按照上式計算出來的密文為L: E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L |
package?cn.hdu.edu.encrypt; ???????public?class?Replace?{ ???????????private?final?static?int?CRYPT_OK?=?????1;?? ?????private?final?static?int?CRYPT_ERROR?=?0; ??????????private?final?static?int?totalLetter?=?26; ?????private?final?static?int?key?=?3; ???????????????public?static?int?encrypt(String?initCode)throws?Exception{ ??????????StringBuilder?sb?=?new?StringBuilder(); ?????for(int?i?=?0;?i?<?initCode.length();?i++?){ ?????????????int?initCodeVal?=?initCode.charAt(i?)?-?96; ?????????????int?targetCodeVal?=?(initCodeVal?+?key?)?%?totalLetter; ?????????????if(targetCodeVal?==?0)?targetCodeVal?=?26; ?????????????char?targetCode?=??(char)(targetCodeVal?+96);??????? ?????????????sb.append(targetCode?); ?????} ??????????String?targetCode?=?sb.toString(); ?????System.out.println(targetCode); ?????????return?CRYPT_OK; ?????} ????? ??????????????public?static?int?decrypt(String?targetCode)throws?Exception{ ??????????StringBuilder?sb?=?new?StringBuilder(); ?????for(int?i?=?0;?i?<?targetCode.length();?i++?){ ?????????????int?targetCodeVal?=?targetCode.charAt(i?)?-?96; ????????????? ??????????????????????????if(targetCodeVal?<=?key)?????targetCodeVal?+=?26; ????????????????? ?????????????int?initCodeVal?=?targetCodeVal?-?key; ?????????????char?initCode?=??(char)(initCodeVal?+?96); ?????????????sb.append(initCode?); ?????} ??????????String?initCode?=?sb.toString(); ?????System.out.println(initCode); ?????????return?CRYPT_OK; ?????} ????? ????? ????? ????? ?} ? ?
總結
以上是生活随笔為你收集整理的古典密码算法------替代密码算法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。