密码学大概像中国的历史发展一样,可分为古典密码学、近代密码学、现代密码学。
一、古典密码学
古典密码主要是替换密码和移位密码。核心原理也就是替换法、移位法。
替换法
替换法也有两种,单表替换和多表替换。
单表替换即原文和密文用的同一张表
如表:j替换u,a替换q,v替换为f
所以明文java替换后变密文uqfq。
也有多表替换,即原文和密文用的是多张表
如:表 abcdef---swtrpv、abcdef---chfhkd、abcdef---jftoud
秘钥为 312
表示分别替换第三张表、第一张表、第二张表
则明文的abc替换后为密文sht。
移位法
移位法就是将原文所有字母在字母表上按照一个固定数组进行前后移位,得出密文。
如:明文abcde变为密文cdefg,就是在字母表里每个字母分别往后移动两位。
典型的移位法应用有"恺撒加密"。
java 代码实现"恺撒加密"
package javaweb.com.demo;
public class Encryption {
public static void main(String[] args) throws Exception {
String a = "cseroad";
int key = 3;