2014-01-21 3 views
2

ASP 페이지에서이 방법을 사용할 수 있습니까? charset windows-1253이 제대로 작동했지만 이제는 내 사이트 을 UTF-8로 변환해야하고 유일한 문제는 암호화 및 암호 해독입니다. 암호 해독 암호가 다음과 같이 표시되면 회원 등록 암호를 암호화하고 UTF-8로 암호화했습니다. 2��8��6RC4 UTF-8 ASP 클래식의 암호화 및 암호 해독

약간의 도움을 부탁드립니다 (제 영어는 유감입니다). 난 당신이 유니 코드 문자를 다루는 ASCW 기능과 상응하는 다른 기능을 사용할 수 있다고 생각

Dim sbox(255) 
    Dim rc4Key(255) 

    Sub RC4Initialize(strPwd) 

     dim tempSwap, a, b  

     intLength = len(strPwd) 

     for a = 0 To 255 

     rc4Key(a) = asc(mid(strpwd, (a mod intLength)+1, 1)) 

     sbox(a) = a      
     next 

     b = 0 

     for a = 0 To 255 
     b = (b + sbox(a) + rc4Key(a)) Mod 256   
     tempSwap = sbox(a) 
     sbox(a) = sbox(b) 
     sbox(b) = tempSwap 
     Next 

    End Sub 

    function EnDeCrypt(plaintxt, psw)  

     dim temp, a, i, j, k, cipherby, cipher  

     i = 0 
     j = 0 

     RC4Initialize psw 

     for a = 1 To Len(plaintxt) 
     i = (i + 1) Mod 256 
     j = (j + sbox(i)) Mod 256 
     temp = sbox(i) 
     sbox(i)= sbox(j) 
     sbox(j)= temp 

     k = sbox((sbox(i) + sbox(j)) Mod 256) 

     cipherby = Asc(Mid(plaintxt, a, 1)) Xor k 
     cipher  = cipher & Chr(cipherby)   
     next 

     enDeCrypt = cipher    

    end function 

    function RC4EnCryptASC(plaintxt, psw)  

     dim temp, a, i, j, k, cipherby, cipher  

     i = 0 
     j = 0 

     RC4Initialize psw 

     for a = 1 To Len(plaintxt) 
     i = (i + 1) Mod 256 
     j = (j + sbox(i)) Mod 256 
     temp = sbox(i) 
     sbox(i)= sbox(j) 
     sbox(j)= temp 

     k  = sbox((sbox(i) + sbox(j)) Mod 256) 

     cipherby = Asc(Mid(plaintxt, a, 1)) Xor k   
     cipher  = cipher & "|"& cipherby   
     next    

     RC4EnCryptASC = cipher    

    end function 

    function RC4DeCryptASC(plaintxt, psw)  

     plaintxt = transformToCHR(plaintxt) 

     dim temp, a, i, j, k, cipherby, cipher  

     i = 0 
     j = 0  

     dim arrayEncrypted    

     RC4Initialize psw   

     for a = 1 To Len(plaintxt) 
     i = (i + 1) Mod 256 
     j = (j + sbox(i)) Mod 256 
     temp = sbox(i) 
     sbox(i)= sbox(j) 
     sbox(j)= temp 

     k = sbox((sbox(i) + sbox(j)) Mod 256) 

     cipherby = Asc(Mid(plaintxt, a, 1)) Xor k 
     cipher  = cipher & Chr(cipherby)   
     next 

     RC4DeCryptASC = cipher      

    end function 

function transformToCHR(plaintxt) 


     dim returnText, arrayEncrypted 
     arrayEncrypted = split(plaintxt, "|")    

     returnText=""    

     for a = 1 to ubound(arrayEncrypted)   
     returnText=returnText&CHR(arrayEncrypted(a))   
     next    

     transformToCHR = returnText 
end function 

답변

1

: 이 RC4 코드?

+0

그러나 유니 코드 코드 포인트는 Windows-1253 (확장 ISO-8859-1 라틴어) 포인트의 값과 다를 수 있습니다. –

+0

이 스크립트와 Windows-1253으로 암호를 해독하고 암호화하지 않고 데이터베이스에 저장합니다. 그런 다음 사이트를 UTF-8로 설정하면 AscW 기능으로 편집 한이 스크립트를 사용하여 암호화합니다. 하지만 어떻게 스크립트에서 AscW 함수를 추가해야합니까 ??? – WebStyler

+0

@WebStyler ascw 등등은 vbscript 함수로 만들어졌습니다. – ulluoink

1

마지막으로 확인했습니다. 방금 ​​각 asc를 ascW로 바 꾸었습니다. 그리고 각 chr을 chrW로 처리하면 완벽하게 작동합니다.