시스템 가져오기. Security. 암호화
가져온 시스템
가져온 시스템. Text
시스템. Net
""& lt 요약 & gt
DES 암호화 클래스
""& lt/요약 & gt;
"" "& lt remarks & gt& lt/ remarks & gt
공개 클래스 Decrypt
공개 서브 DESEncrypt()
엔드 커넥터
공개 공유 함수 Encrypt(ByVal 텍스트를 문자열로)를 문자열로
Return Encrypt(Text, " 12345678 ")
함수 종료
공개 공유 함수 Encrypt(ByVal Text As String, ByVal sKey As String) As String
Dim des As New DESCryptoServiceProvider()
Dim inputByteArray As Byte()
inputByteArray = encoding.Default.GetBytes(Text)
des. Key = ASCIIEncoding ASCII.GetBytes(system. web . security . 양식 인증 . hashpasswordforstoringconfigfile(sKey, "md5"). substring(0, 8))
Des. IV = encoding. ascii.GetBytes(system. web . security . security . forms authentication . hashpasswordforstoringconfigfile(sKey, "md5"). substring(0, 8))
Dim ms를 새 시스템. io.MemoryStream()
Dim. cs를 새 암호화 스트림으로 (ms, des. CreateEncryptor(), CryptoStreamMode. Write)
cs. Write(inputByteArray, 0, inputByteArray. length)
cs. FlushFinalBlock ()
Dim ret as new StringBuilder()
바이트 b
ms.ToArray()의 각 b에 대해
ret. append format("{ 0:X2 }". b)
그런 다음
ret. toString()
함수 종료
공개 공유 함수 Decrypt(ByVal Text As String) As String
Return Decrypt(Text, ". 12345678")
종료 함수
공개 공유 함수 Decrypt(ByVal Text As String, ByVal sKey As String) As String
Dim des As New DESCryptoServiceProvider()
Dim len As Integer
len = Text. Length / 2
Dim inputByteArray(len - 1)를 바이트
Dim x, I를 정수로
For x = 0에서 len - 1
i = Convert. toInt32(text. Substring(x * 2, 2), 16)
inputByteArray(x) = CType(i, bytes)
그런 다음
Des. Key = ASCIIEncoding. ascii.GetBytes(system. web . security . forms authentication . hashpasswordforstoringconfigfile(sKey, "md5"). substring(0, 8))
Des. IV = encoding. ascii.GetBytes(System. web . security . forms authentication . hashpasswordforstoringconfigfile(sKey, "md5"). substring(0, 8))
Dim ms를 새 시스템. io.MemoryStream()
Dim. cs를 새 암호화 스트림으로 (ms, des. CreateDecryptor(), CryptoStreamMode. Write)
cs. Write(inputByteArray, 0, inputByteArray. length)
cs. FlushFinalBlock ()
ReturnEncoding.Default.GetString(ms.ToArray())
함수 종료
클래스 종료
다음은 호출 메서드입니다.
공개 클래스 폼 1
비공개 하위 버튼 1 _ 클릭(발신자를 시스템. Object, byval e로 취급)는 버튼 1을 처리합니다. 클릭"을 암호화합니다.
dimstr _ 문자열로 암호화 = desen crypt. encrypt("암호화하려는 텍스트는 길이에 상관없습니다", " 비밀번호는 매우 길 수 있으며, 이 매개 변수를 생략하면 기본값이 12345678").
엔드 커넥터
비공개 하위 버튼2 _ 클릭(발신자를 시스템. Object, byval e를 system. eventargs로 취급) handlesbutton2.click '암호 해독.
dimstr _ 문자열로 해독 = desen crypt. decrypt("해독할 텍스트는 길이에 상관없이 가능", "암호화에 사용할 비밀번호, 이 매개변수가 생략된 경우 기본값은 12345678").
엔드 커넥터
엔드 클래스