我心飛翔

          Java技術交流

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            9 Posts :: 16 Stories :: 4 Comments :: 0 Trackbacks

          據說此加密算法每次加密的結果都不同,但解密的結果相同

          using System;

          namespace test001
          {
           /**
             對sSource,進行加密、解密操作。
             @param sSource String :操作的字符串
             @param iFlag int :操作類型 1-加密  2-解密
             @return String :加密或解密后的字符串
              **/
           public class password
           {
            public password()
            {
            }
            public static string pWord(string sSource,int iFlag)
            {
             if(sSource==null)
              return null;
             if(sSource.Equals(""))
              return "";
             int li_len,i,li_asc,li_rand,li_head;
                      string ls_i,ls_code="";
             if(iFlag ==1)
             {
              li_len=sSource.Length;
              Random rdm1 = new Random(~unchecked((int)DateTime.Now.Ticks));
              li_head=(int)(rdm1.NextDouble()*10);
              if(li_head ==0)
               li_head =1;
              for(i=0; i<li_len; i++)
              {
               Random rdm2 = new Random(~unchecked((int)DateTime.Now.Ticks));
               int rand2 =(int)(rdm2.NextDouble() *94);
               if(rand2 ==0)
                rand2 =1;
               li_rand=rand2+32;
               li_asc=Convert.ToInt32(sSource.ToCharArray(i,1)[0]);
               ls_i=((char)(li_asc -i)).ToString();

               if(li_asc+i+li_head>126)
               {
                if(li_rand%2 ==1)
                 li_rand=li_rand+1;
                ls_i=((char)(li_rand)).ToString()+((char)(li_asc -i -li_head)).ToString();
               }
               else
               {
                if(li_rand%2 ==0)
                 li_rand=li_rand+1;
                ls_i=((char)(li_rand)).ToString()+((char)(li_asc +i +li_head)).ToString();
               }
               ls_code=ls_code+ls_i;
              }
              Random rdm3 = new Random(~unchecked((int)DateTime.Now.Ticks));
              int rand1 =(int)(rdm3.NextDouble()*9);
              if(rand1 ==0)
               rand1 =1;
              ls_code=((char)(rand1*10+li_head+40)).ToString()+ls_code;
             }
             else
             {
              int li_ret;
              li_len=sSource.Length;
              ls_code="";
              li_ret=Convert.ToInt32(sSource.ToCharArray(0,1)[0]) %10;
              for( i=2;i <li_len; i=i+2)
              {
               li_asc=Convert.ToInt32(sSource.ToCharArray(i,1)[0]);
               if(Convert.ToInt32(sSource.ToCharArray(i - 1,1)[0]) %2 ==0)
               {
                ls_i=((char)(li_asc + (i - 1)/2 + li_ret)).ToString();
               }
               else
               {
                ls_i=((char)(li_asc - (i - 1)/2 - li_ret)).ToString();
               }
               ls_code=ls_code+ls_i;
              }
             }
             return ls_code;
            }
           }
          }



          標簽:java軟件工程師培訓  軟件編程培訓  如何學習java  廣州java培訓  java精品課程  軟件工程課程

          posted on 2009-12-25 16:26 飛翔的JAVA 閱讀(75) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 长葛市| 永宁县| 南和县| 绥德县| 阿荣旗| 苗栗县| 什邡市| 宁海县| 怀远县| 巴塘县| 宣化县| 伊川县| 泾阳县| 同德县| 慈溪市| 邹城市| 桓仁| 抚顺市| 平湖市| 滦平县| 台东县| 延安市| 峨眉山市| 康定县| 茶陵县| 伊春市| 阿拉善盟| 托克托县| 长兴县| 晋州市| 雅安市| 潜江市| 莲花县| 乌苏市| 大渡口区| 南安市| 广东省| 呼图壁县| 会昌县| 大关县| 大宁县|