classic asp

[classic asp] AES256 암호화, 복호화

콩배 2021. 4. 26. 17:36
Session.CodePage = 65001
Response.ChaRset = "utf-8"

'암호화 검증 사이트 : https://www.devglan.com/online-tools/aes-encryption-decryption

Dim secret_key
secret_key = "secretkey01234567890secretkey012" '32바이트의 Key
secret_iv = "secretkey0123456" '유동적인 초기화벡터(제2의 키) '16바이트 iv

postData = "Hello, World!"
encStr = KeyEncrypt(postData)

response.write "암호화 : " & encStr & "<br>"
response.write "복호화 : " & KeyDecrypt(encStr) & "<br>"

'------------------------------------------
'암호화
Function KeyEncrypt(Key) 

  Dim result
  Dim crypt
  Set crypt = Server.CreateObject("Chilkat_9_5_0.Crypt2")

  crypt.CryptAlgorithm = "aes" '암호화 알고리즘
  crypt.CipherMode = "cbc" '암호모드
  crypt.KeyLength = 256 '키의 길이 256비트
  crypt.PaddingScheme = 0 'PKCS5
  crypt.EncodingMode = "Base64"
  crypt.SetEncodedIV secret_iv,"ascii" '초기화벡터
  crypt.SetEncodedKey secret_key,"ascii"

  result = crypt.EncryptStringENC(Key)
  Set crypt = Nothing 

  KeyEncrypt = result

End Function
'--------------------------
'복호화
Function KeyDecrypt(Key) 

  Dim result

  Dim crypt
  Set crypt = Server.CreateObject("Chilkat_9_5_0.Crypt2")

  crypt.CryptAlgorithm = "aes"
  crypt.CipherMode = "cbc"
  crypt.KeyLength = 256
  crypt.PaddingScheme = 0
  crypt.EncodingMode = "Base64"
  crypt.SetEncodedIV secret_iv,"ascii"
  crypt.SetEncodedKey secret_key,"ascii"

  result = crypt.DecryptStringENC(Key)
  Set crypt = Nothing

  KeyDecrypt = result
End Function