斯巴达手杖加密解密
在古希腊,斯巴达军方使用一种叫做密码棒(scytale)的装置来加密信息,这种装置由一条皮带和一根木棍组成。 在展开时,皮带似乎只是一串随机字符,但如果缠绕在一定大小的木棒上,字母会对齐成单词。
古希腊军队使用一种叫做scytale的圆木棍来进行保密通信。其使用方法是这样的:把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。快速且不容易解读错误的优点,使它在战场上大受欢迎。但是它很容易就被破解了,因为此方法还是会将容易引发“联想”的字或“提示”留在编码文中,所以在原文编成编码文时,就必需将一些敏感字眼除去或替换。
这种scytale圆木棍也许是人类最早使用的文字加密解密工具。据说主要是古希腊城邦中的斯巴达人(Sparta)在使用它,所以它又被叫做“斯巴达棒”。
斯巴达棒的加密原理属于密码学中的位移法加密,因为它通过改变文本中字母的阅读顺序来达到加密的目的。
明文:helloword
密文:HLO@ OR~ DELW
在线解密工具:密码棒密码加密/解密 - 一个工具箱 - 好用的在线工具都在这里! (atoolbox.net)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class SHIFTKeyGen {
static char[] SHIFT_Encrypt(char[] plaintext,int key){
int len,d,i,j,m;
char[] temp,ciphertext;
len=plaintext.length;
if((d=len%key)!=0){
len = len + key-d;
}
temp = new char[len];
m=len/key;
for(i=0;i<m;i++){