隨筆-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 閱讀(1753) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 昂仁县| 遵义县| 北海市| 海门市| 西和县| 铁力市| 郑州市| 蚌埠市| 平乡县| 墨脱县| 望江县| 灌南县| 那曲县| 苍南县| 嘉义市| 乐清市| 贵港市| 民丰县| 桦川县| 宜宾市| 刚察县| 安平县| 如皋市| 马鞍山市| 福贡县| 彰化市| 五原县| 濉溪县| 汝阳县| 长垣县| 莱西市| 东平县| 奉新县| 固始县| 定南县| 建阳市| 延吉市| 德化县| 哈密市| 枝江市| 融水|