首页 > 代码库 > java 简单加密
java 简单加密
* 所有的加密技术的基本操作都是用encrypt()和decrypt()方法对消息
* 进行分解和组合,其中消息是用空格分隔的字符串,除了encrypt()和decrypt()
* 外每个加密类还需要encode()和decode()方法对每一个单词按照特定的算法
* 规则进行编码,。例如Caesar Cipher 和 Transpose Clipher
* 按照设想由于加密都有相同的方法,因此首先定义一个通用的类Cipher类
* 封装公用的方法。
package Case.Encryption;import java.util.*;public abstract class Cipher {/** * 所有的加密技术的基本操作都是用encrypt()和decrypt()方法对消息 * 进行分解和组合,其中消息是用空格分隔的字符串,除了encrypt()和decrypt() * 外每个加密类还需要encode()和decode()方法对每一个单词按照特定的算法 * 规则进行编码,。例如Caesar Cipher 和 Transpose Clipher * 按照设想由于加密都有相同的方法,因此首先定义一个通用的类Cipher类 * 封装公用的方法。 * * */ public String encrypt(String s){ StringBuffer result=new StringBuffer(); StringTokenizer words=new StringTokenizer(s); while(words.hasMoreTokens()){ result.append(encode(words.nextToken())+""); } return result.toString(); } public String decrypt(String s) { StringBuffer result=new StringBuffer(); StringTokenizer words=new StringTokenizer(s); while(words.hasMoreTokens()) { result.append(decode(words.nextToken())+""); } return result.toString(); } public abstract String encode(String word); public abstract String decode(String woid); }
package Case.Encryption;public class Caesar extends Cipher{ @Override public String encode(String word) { // TODO Auto-generated method stub StringBuffer result =new StringBuffer(); for(int k=0;k<word.length();k++) { char ch=word.charAt(k); ch=(char)(‘a‘+(ch-‘a‘+3)%26);//?正则表达式 result.append(ch); } return result.toString(); } @Override public String decode(String word) { // TODO Auto-generated method stub StringBuffer result =new StringBuffer(); for(int k=0;k<word.length();k++) { char ch=word.charAt(k); ch=(char)(‘a‘+(ch-‘a‘+23)%26);//?正则表达式 result.append(ch); } return result.toString(); }}
package Case.Encryption;/**本例采用的是最简单的翻转易位方法,也可以采用其他的易位方法*/public class Transpose extends Cipher{ @Override public String encode(String word) { // TODO Auto-generated method stub StringBuffer result =new StringBuffer(); return result.reverse().toString(); } @Override public String decode(String word) { // TODO Auto-generated method stub return encode(word); } }
1 package Case.Encryption; 2 3 public class TestEncrypt { 4 public static void main(String[] args) { 5 Caesar caesar =new Caesar(); 6 String plain ="this is the secret message."; 7 String secret=caesar.encrypt(plain); 8 String decrypt=caesar.decrypt(secret); 9 System.out.println("*********Caesar Cipher Encryption**********");10 System.out.println("PlainText: "+plain);11 System.out.println("Encrypted: "+secret);12 System.out.println("Decrypted: "+decrypt);13 14 Transpose ts=new Transpose();15 String tsecret=ts.encrypt(plain);16 String tdecrypt=ts.decrypt(secret);17 System.out.println("**********Transpose Cipher Encryption**********");18 System.out.println("PlainText: "+plain);19 System.out.println("Encrypted: "+tsecret);20 System.out.println("Decrypted: "+tdecrypt);21 }22 23 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。