隨筆-26  評論-111  文章-19  trackbacks-0

          /*
           * Encrypt 字符串加密
           *
           * @author shiwei 2004-8-28
           */

          package com.snoics.base.util;
          /**
           * Encrypt 字符串加密
           * @author shiwei
           *
           */
          public class Encrypt {

              public Encrypt() {

              }

              /**
               * 加密字符串
               * @param encryptstring
               * @return String
               */
              public static String encrypt(String encryptstring){
               String newstring="";
               if(encryptstring.length()<1){
                return encryptstring;
               }else{
                String tempstring=StringClass.remove(encryptstring,0,(int)(encryptstring.length()/3));
                tempstring=StringClass.getConvertString(tempstring);
                encryptstring=StringClass.getConvertString(encryptstring);
                newstring=encrypt(encryptstring,tempstring);
                return newstring;
               }
              }
             
              /**
               * 普通加密字符串
               *
               * @param encryptstring1
               * @param encryptstring2
               * @return String
               */
              public static String encrypt(String encryptstring1, String encryptstring2) {
                  int strcount = 0; //字符串ASCII碼的總和
                  int newpasswordlength = 0; //生成的密碼長度
                  int seed1 = 0; //種子
                  int seed2 = 0;
                  String str = "";
                  String newpassword = ""; //生成的密碼
                  char newchar;
                  int newcharint = 0;
                  int thechar = 0;

                  str = encryptstring2 + encryptstring1;

                  if (str.length() > 0) {
                      for (int i = 0; i < str.length(); i++) {
                          strcount = strcount + str.charAt(i);
                      }

                      newpasswordlength = (strcount * strcount) / str.length() + str.length();

                      int temp = 0;
                      int temp2 = 0;
                      while ((newpasswordlength <= 0) || (newpasswordlength > 100)) {
                          temp = temp + str.length();
                          temp2 = temp + temp2;
                          newpasswordlength = 100;
                      }

                      for (int i = 0; i < encryptstring1.length(); i++) {
                          seed1 = seed1 + encryptstring1.charAt(i);
                      }
                      for (int i = 0; i < encryptstring2.length(); i++) {
                          seed2 = seed2 + encryptstring2.charAt(i);
                      }

                      for (int i = 0; i < newpasswordlength; i++) {

                          if (i < str.length()) {
                              thechar = str.charAt(i);
                          } else {
                              thechar = str.charAt(i % (str.length() - 1))
                                      + str.charAt((str.length() - 1)
                                              - (i % str.length()));
                          }
                          newcharint = thechar * (seed1 * (i + 1) + thechar);
                          newcharint = newString(newcharint);
                          newcharint = thechar * (seed2 * (i + 1) + thechar);
                          newcharint = newString(newcharint);
                          newchar = (char) newcharint;
                          newpassword = newpassword + String.valueOf(newchar);
                      }
                      newpassword = newpassword.substring((encryptstring2.length() + encryptstring1.length()) % 100);
                      return (newpassword);
                  } else {
                      return ("空字符串不能被加密");
                  }
              }

              private static int newString(int charint) {
                  while ((charint > 127) || (charint < 32)) {
                      while (charint > 127) {
                          charint = (charint - charint/2+1) / 2;
                          while(charint==60||charint==62||charint==34||charint==32||charint==39){
                           charint = charint + 1;
                          }
                      }
                      while (charint < 32) {
                          charint = (charint + charint/2-1) * 2;
                          while(charint==60||charint==62||charint==34||charint==32||charint==39){
                           charint = charint + 1;
                          }
                      }
                  }
                  return (charint);
              }

              public static void main(String[] args) {
                  String theusername = "1abc1";
                  String thepassword = "1def1";
                  String theusername1 = "1def1";
                  String thepassword1 = "1abc1";
                  String newstring=Encrypt.encrypt(theusername,thepassword);
                  System.out.println("newstring="+newstring);
                  String newstringa=Encrypt.encrypt(theusername1,thepassword1);
                  System.out.println("newstringa="+newstringa);
                  String newstring2=Encrypt.encrypt(newstring);
                  System.out.println("newstring2="+newstring2);
                  String newstring3=Encrypt.encrypt(newstring2);
                  System.out.println("newstring3="+newstring3);
              }

          }


          執行結果:

          newstring=*?C4%;V[GKOoUX[_#i%ptvy)!!#01&c(46*o;=?y{?AB#4HI7%7LM:==U?@?AXBZFGHH`IJKfgO4QlmR7qrt::wxz=
          newstringa=(=A4$;TYDHLmTW[_#d#kpvx*!#-/$a(56)m89;vy@AB!2DE4$7LN::;P==?AYBXCDEE^IJKceL3NikR6opq89uvw;
          newstring2=ij887i)54)?!@A!!!Ab##eBf##ddd#efff#b#cadc#bc_!!]@
          newstring3=(qI}!+A!#z%%4?((
          posted on 2006-02-20 10:45 snoics 閱讀(1761) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 华宁县| 清原| 五河县| 和静县| 鹤岗市| 宝山区| 马关县| 县级市| 阜宁县| 叙永县| 大理市| 鹿泉市| 铅山县| 临清市| 河源市| 西平县| 洪湖市| 舟山市| 珲春市| 和林格尔县| 五河县| 清水河县| 寿阳县| 玉溪市| 禄丰县| 凤阳县| 沧州市| 贺州市| 梅河口市| 岚皋县| 齐齐哈尔市| 清原| 尚志市| 醴陵市| 弥渡县| 阿合奇县| 商丘市| 富顺县| 罗平县| 咸阳市| 托克逊县|