隨筆-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);
              }

          }


          執(zhí)行結(jié)果:

          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)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 永城市| 卓尼县| 宜兴市| 柘荣县| 沾益县| 江永县| 蒙阴县| 中方县| 来宾市| 沂南县| 丁青县| 柳州市| 马鞍山市| 敖汉旗| 郯城县| 溧水县| 阿巴嘎旗| 江陵县| 吴桥县| 宣威市| 平阳县| 木里| 新野县| 淮安市| 江川县| SHOW| 高淳县| 新兴县| 玛曲县| 高尔夫| 全椒县| 长汀县| 洪湖市| 三门峡市| 资阳市| 青川县| 老河口市| 宿州市| 环江| 华坪县| 常山县|