没事模仿各种大神写了个凯撒算法和des算法,网络安全类的
package com.lin.kaisa;/**
* @author linzhengli
* @date 2013-11-17
* @zuoyong 模拟凯撒算法
*/
/*
* String实例中,
* charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.
* charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.
*/
/*
* 测试%和charAt的具体用法
System.out.println(4%3);
String letters = "abcdefghijklmnopqrstuvwxyz";
System.out.println(letters.charAt(1));*/
public class Kaisa {
//用于加密(encrypt)
public static String encrypt(String text,int key){
StringBuffer sb=new StringBuffer();
String letters = "abcdefghijklmnopqrstuvwxyz";
text = text.toLowerCase(); //不管大小写我都把它转换成小写的。容易模拟本算法
for (int i = 0; i < text.length(); i++) {
//97 的ascii是 'a'
int index=(text.charAt(i)-97+key)%26;//key的值为正,右移
if(index>=0&&index<=25){
sb.append(letters.charAt(index));
}else{
//sb.append(text.charAt(i));
}
}
return sb.toString();
}
//用于解密
public static String decrypt(String cryptograph,int key){
StringBuffer plaintext=new StringBuffer();
String letters = "abcdefghijklmnopqrstuvwxyz";
cryptograph=cryptograph.toLowerCase();
for (int i = 0; i < cryptograph.length(); i++) {
int index=(cryptograph.charAt(i)-97-key)%26;//key的值为负
if(index>=0&&index<=25){
plaintext.append(letters.charAt(index));
}else{
plaintext.append(cryptograph.charAt(i));
}
}
return plaintext.toString();
}
public static void main(String[] args){
//String st="hello world!";
/*
* 定义所需要加密的字符串和移位数
*/
String st="xyz";
int key=1;
System.out.println("原来的字符:"+st);
System.out.println("加密后的字符:"+encrypt(st,key));
System.out.println("解密后的字符:"+decrypt(encrypt(st,key),key));
}
} des 凯撒
补充:Java , Java SE