信息加密算法

来源:互联网 发布:骑砍战团 for mac下载 编辑:程序博客网 时间:2024/04/20 23:20

这是解密的东西,根据这个写的加密算法;

package bag;

import java.util.*;


public class ChartoKey {

   
/*
     * 生成算子
    
*/

   
public int Lwords() {
        Random ran
= new Random();
       
int a = ran.nextInt(100);
       
return a;
    }

   
/*
     * 根据加密算子和ASCII码生成字符算子
     * 字符算子=ASCii-加密算子
    
*/
   
public int keyWords(String a, int i) {

       
char key1 =a.charAt(0);
       
int key2 = key1 - i;
       
return key2;
    }

   
/*
     * 根据加密算子和字符位置生成位置码 位置码=位置+加密算子
    
*/

   
public int locationKey(int location, int key) {
       
int locationWord = location + key;
       
return locationWord;
    }
   
   
/*
     * 字符位置补齐
     * 将所有子字符转换为四位输出
    
*/
   
public String patternWord(String str1) {
       
        String str4
= "";
        String str2
= "";
       
if (str1.length() < 4) {
           
int i = 4 - str1.length();
           
for (int m = 0; m < i; m++) {
                str4
+= "0";
            }
            str2
= str4 + str1;
        }
else
            str2
= str1;
       
return str2;
    }

   
/*
     * 打乱编码顺序
    
*/
   
public String[] fina(String[] input){
        Random ran
=new Random();
        String a
=new String();
       
int len=input.length;
       
for(int i=0;i<len;i++){
           
int num1=ran.nextInt(len);
           
int num2=ran.nextInt(len);
            a
=input[num1];
            input[num1]
=input[num2];
            input[num2]
=a;
        }
   
return input;   
    }
   
/*
     * @main
    
*/
   
public static void main(String[] args) {
        ChartoKey cha
=new ChartoKey();
        Scanner input
=new Scanner(System.in);
        String inputline
=input.nextLine();
        String[] outkey
=new String[inputline.length()];
       
for(int i=0;i<inputline.length();i++){
            String sonStr
=inputline.substring(i,i+1);
           
int keyWords=cha.Lwords();
            String locationkey
=cha.patternWord(cha.locationKey(i, keyWords)+"");//位置码
            String keyword=cha.patternWord(cha.keyWords(sonStr, keyWords)+"");//字符码
            String lwords=cha.patternWord(keyWords+"");//算子
            outkey[i]=lwords+locationkey+keyword;
        }
        cha.fina(outkey);
       
for(int i=0;i<inputline.length();i++){
          System.out.print(outkey[i]);
        }
    }
}

原创粉丝点击