将java版的实现加解密操作的功能与您共享
- package com.util;
- /*******************************************************************************
- * 文件名称:Cryption.java<br>
- * 功能描述:加解密的操作<br>
- * 创建日期:2008-08-21 <br>
- *
- * @author rain
- * @version 1.0
- ******************************************************************************/
- public class Cryption {
- String ENCODE_KEY1;
- String ENCODE_KEY_A;
- String ENCODE_KEY2;
- String ENCODE_KEY_B;
- String ENCODE_KEY3;
- String ENCODE_KEY_C;
- String ENCODE_KEY4;
- String ENCODE_KEY_D;
- String ENCODE_KEY5;
- String ENCODE_KEY_E;
- String ENCODE_KEY6;
- public Cryption() {
- ENCODE_KEY1 = "zxcvbnm,./asdfg";
- ENCODE_KEY_A = "cjk;";
- ENCODE_KEY2 = "hjkl;'qwertyuiop";
- ENCODE_KEY_B = "cai2";
- ENCODE_KEY3 = "[]//1234567890-";
- ENCODE_KEY_C = "%^@#";
- ENCODE_KEY4 = "=` ZXCVBNM<>?:LKJ";
- ENCODE_KEY_D = "*(N";
- ENCODE_KEY5 = "HGFDSAQWERTYUI";
- ENCODE_KEY_E = "%^HJ";
- ENCODE_KEY6 = "OP{}|+_)(*&^%$#@!~";
- }
- /**
- * 解密字符串,
- *
- * @param varCode
- * 需要解密的字符串
- */
- public String decryption(String varCode) {
- String DecodeStr;
- try {
- if (varCode.length() == 0) {
- DecodeStr = "";
- String s = DecodeStr;
- return s;
- }
- String strKey = String.valueOf(String.valueOf((new StringBuffer(
- String.valueOf(String.valueOf(ENCODE_KEY1)))).append(
- ENCODE_KEY2).append(ENCODE_KEY3).append(ENCODE_KEY4)
- .append(ENCODE_KEY5).append(ENCODE_KEY6)));
- if (varCode.length() % 2 == 1)
- varCode = String.valueOf(String.valueOf(varCode)).concat("?");
- String des = "";
- int midNum = Math.round(varCode.length() / 2 - 1);
- int n;
- for (n = 0; n <= midNum; n++) {
- int num1 = varCode.charAt(n * 2);
- int num2 = strKey.indexOf(varCode.charAt(n * 2 + 1));
- int num3 = num1 ^ num2;
- char xorstr = (char) num3;
- des = String.valueOf(des) + String.valueOf(xorstr);
- }
- int onenum = 1;
- char onestr = (char) onenum;
- n = des.indexOf(onestr);
- if (n >= 0)
- DecodeStr = des.substring(0, n);
- else
- DecodeStr = des;
- } catch (Exception ex) {
- DecodeStr = "Exception/Message:".concat(String.valueOf(String
- .valueOf(ex.getMessage())));
- }
- return DecodeStr;
- }
- /**
- * 加密字符串,
- *
- * @param sSource
- * 需要加密的源字符串
- */
- public String encryption(String sSource) {
- String EncodeStr;
- try {
- if (sSource.length() == 0) {
- EncodeStr = "";
- String s = EncodeStr;
- return s;
- }
- String strKey = String.valueOf(String.valueOf((new StringBuffer(
- String.valueOf(String.valueOf(ENCODE_KEY1)))).append(
- ENCODE_KEY2).append(ENCODE_KEY3).append(ENCODE_KEY4)
- .append(ENCODE_KEY5).append(ENCODE_KEY6)));
- int onenum = 1;
- char onestr = (char) onenum;
- for (; sSource.length() < 8; sSource = String.valueOf(sSource)
- + String.valueOf(onestr))
- ;
- String des = "";
- for (int n = 1; n <= sSource.length(); n++) {
- int code;
- int num1;
- char charcode;
- do {
- double myrandom = Math.random();
- code = (int) Math.round(myrandom * 100.0);
- for (num1 = sSource.charAt(n - 1); code > 0
- && ((code ^ num1) < 0 || (code ^ num1) > 90); code--)
- ;
- charcode = (char) code;
- } while (code <= 35 || code >= 122 || charcode == '|'
- || charcode == '/'' || charcode == ','
- || strKey.charAt(code ^ num1) == '|'
- || strKey.charAt(code ^ num1) == '/''
- || strKey.charAt(code ^ num1) == ',');
- charcode = (char) code;
- int num2 = sSource.charAt(n - 1);
- des = String.valueOf(String.valueOf((new StringBuffer(String
- .valueOf(String.valueOf(des)))).append(charcode)
- .append(strKey.charAt(code ^ num2))));
- }
- EncodeStr = des;
- } catch (Exception ex) {
- EncodeStr = "Exception/Message:".concat(String.valueOf(String
- .valueOf(ex.getMessage())));
- }
- return EncodeStr;
- }
- public static void main(String[] args) {
- Cryption crp = new Cryption();
- String eStr = crp.encryption("abc");// 将字符"abc"加密
- System.out.println("字符‘abc’加密后 :" + eStr);
- System.out.println("字符‘abc’加密后解密 :" + crp.decryption(eStr));// 将刚刚加密的字符解密
- }
- }
程序输出:
字符‘abc’加密后 :/J5^XLP+?H[#AFV^
字符‘abc’加密后解密 :abc