Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483155
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:31:16

JAVA实现的AZDG加密-解密算法。源程序:

    import java.io.IOException;

    import java.security.MessageDigest;

 

 

    public class Azdg {

 

        public static void main(String[] args) {

 

           Azdg azdg = new Azdg();

           System.out.println(System.currentTimeMillis()/1000);

           String clearText = "no=sh0105&time=12319399372223`112r3r223";//明文

           String cipherText = "";//密文

           String cleanText = "";//解密后的

           String key = "1234567890";//密钥,可自定义

 

           System.out.println("明文为:" + clearText);

           cipherText = azdg.encrypt(clearText, key);

           System.out.println("加密后为:"+cipherText);

           cleanText = azdg.decrypt(cipherText, key);

           System.out.println("解密后为:"+cleanText);

        }

 

        /**

         * 加密算法

         * */

        public String encrypt(String txt, String key) {

           String encrypt_key = "0f9cfb7a9acced8a4167ea8006ccd098";

           int ctr = 0;

           String tmp = "";

           int i;

           for (i = 0; i < txt.length(); i++) {

               ctr = (ctr == encrypt_key.length()) ? 0 : ctr;

               tmp = tmp + encrypt_key.charAt(ctr)

                      + (char)(txt.charAt(i) ^ encrypt_key.charAt(ctr));

               ctr++;

           }

           return base64_encode(key(tmp, key));

        }

 

        /**

         * 解密算法

         */

        public String decrypt(String cipherText, String key) {

           // base64解码

           cipherText = base64_decode(cipherText);

           cipherText = key(cipherText, key);

           String tmp = "";

           for (int i = 0; i < cipherText.length(); i++) {

               int c = cipherText.charAt(i) ^ cipherText.charAt(i + 1);

               String x = "" + (char) c;

 

               tmp += x;

               i++;

           }

           return tmp;

        }

 

        public String key(String txt, String encrypt_key) {

           encrypt_key = strMD5(encrypt_key);

           int ctr = 0;

           String tmp = "";

           for (int i = 0; i < txt.length(); i++) {

               ctr = (ctr == encrypt_key.length()) ? 0 : ctr;

               int c = txt.charAt(i) ^ encrypt_key.charAt(ctr);

               String x = "" + (char) c;

               tmp = tmp + x;

               ctr++;

           }

           return tmp;

        }

 

        public String base64_encode(String str) {

           return new sun.misc.BASE64Encoder().encode(str.getBytes());

        }

 

        public String base64_decode(String str) {

           sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();

           if (str == null)

               return null;

           try {

               return new String(decoder.decodeBuffer(str));

           } catch (IOException e) {

               e.printStackTrace();

               return null;

           }

        }

 

 

[1]  

【责编:landy】

--------------------next---------------------

阅读(148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~