aws lambda에서 아래 코드를 실행하는 방법에 대해서도 동일한 의구심을 가지고 있습니다. Crypto.Cipher 가져 오기에서 암호화 가져 오기 임의 에서
수입 base64로 수입 hashlib
AES
클래스 AESCipher (객체) :
def __init__(self, key):
self.bs = 32
self.key = hashlib.sha256(AESCipher.str_to_bytes(key)).digest()
@staticmethod
def str_to_bytes(data):
u_type = type(b''.decode('utf8'))
if isinstance(data, u_type):
return data.encode('utf8')
return data
def _pad(self, s):
return s + (self.bs - len(s) % self.bs) * AESCipher.str_to_bytes(chr(self.bs - len(s) % self.bs))
@staticmethod
def _unpad(s):
return s[:-ord(s[len(s)-1:])]
def encrypt(self, raw):
raw = self._pad(AESCipher.str_to_bytes(raw))
iv = Random.new().read(AES.block_size)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw)).decode('utf-8')
def decrypt(self, enc):
enc = base64.b64decode(enc)
iv = enc[:AES.block_size]
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return self._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8')
cipher = AESCipher(key='abcd')
encrypted = cipher.encrypt("Hello World")
print(encrypted)
new_cipher = AESCipher(key='abcd')
decrypted = new_cipher.decrypt('y1sJ7uJITflG81eKHUWd+JkGlOyj3v/iR5HFyiIJv3u9ZpWFCX/XW+A5HS4iPBVb')
print(decrypted)
당신은 AWS 파이썬 코드를 작성할 수 있습니다 람다는 당신이 다른 어떤 목적으로도 좋아할 것입니다. 람다 함수에 대한 로그에 문제가 있습니까? – birryree
문제를 일으키는 코드 섹션을 게시하면보다 쉽게 도움을받을 수 있습니다 :-) –
디버깅 도움말 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에 원하는 질문에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서 그것을 재현하는 데 필요한 가장 짧은 코드. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. See : 최소한의 완전하고 검증 가능한 예제를 만드는 방법. http://stackoverflow.com/help/mcve –