刚学C#,好多不懂,以前一个网站是用ASP做的,用户密码是经过一个加密函数加密后存到数据库里的,现在网站我想用C#重新做了,数据库里已有高达十几万的记录,所以也不能再换别的加密算法了,现在就只能把这个加密函数写成C#版的了!谁能帮我,不胜感激!谢谢! 下面是ASP版的源码:  function encrypt(ecode) 
      Dim texts 
      dim i 
      for i=1 to len(ecode) 
         texts=texts & chr(asc(mid(ecode,i,1))+i) 
      next 
      encrypt = texts 
      end function  
   function decrypt(dcode)    
        dim texts 
      dim i 
      for i=1 to len(dcode) 
         texts=texts & chr(asc(mid(dcode,i,1))-i) 
      next 
      decrypt=texts 
   end function 
function   mistake(preString) 
      Dim texts 
      Dim seed 
      Dim i,length 
      prestring = trim(preString) 
      length = len(preString) 
      seed = length 
      Randomize(length) 
      texts = "" 
      for i = 1 to length 
            seed = int(94*rnd(-asc(mid(preString,i,1))-seed*asc(right(prestring,1)))+32) 
            texts = texts & chr(seed) & chr(int(94*rnd(-seed)+32)) 
      next 
   dim dist 
   dist="" 
   for i = 1 to len(texts) 
     if mid(texts,i,1)<>"'"  then 
            dist=dist+mid(texts,i,1) 
         end if 
    next  
    mistake = dist 
   end function 用来进行加密的是mistake()这个函数,如:pass=mistake(password),曾经在ASP里就这样的!

解决方案 »

  1.   

    你是谁?怎么会有这个算法的?
    我这儿有一个用vb.net写的一样的加密算法,以前是用在www.jsqyw.com里的。
    你是不是在南京啊?
      

  2.   

    尽量想办法换算法吧,这个算法即使移植了,.net和vb的随机数发生器不一定一样,如果不一样密码校验还是通不过的。
    或者你可以先确认一下.net和vb的随机数发生器是不是一样。
      

  3.   

    lrxz:我不是南京的,这个算法是以前的一套ASP系统里面用的加密算法,现在系统已经移植到.NET平台了,所以想法这个算法改成C#版的,因为数据库太大,不太可能再换其它算法!
      

  4.   

    coowoo(coowoo) :这么来说基本就没有办法可以解决这个问题了是吗?
      

  5.   

    我测试了一下
    vb和vb.net的随机数发生器一样
    搂住把那段代码复制到vb.net生成一个dll,再在c#中调用就行了
      

  6.   

    coowoo(coowoo)用VB.NET生成一个DLL?在C#中怎么调用?引用?
      

  7.   

    谢谢,解决了,把这段代码复制到VB.NET里生成一个DLL,然后在C#中调用就可以了,呵可!谢谢,散分了!