기본 Android 및 기본 iOS 구현이있는 메신저 앱에서 작업하고 있습니다. 필수 기능 중 하나는 일반 암호 문자열을 입력하여 메시지를 암호화 할 수 있다는 것입니다. 그런 다음이 암호를 입력하여 이러한 메시지를 암호 해독해야합니다. 나는 또한 "AES 사용"이라고 들었다.Android 및 iOS 용 비밀번호 기반 암호화
거의 성공을 거두어 들인 나의 계획은 암호 문자열을 가져 와서 내가 결코 알지 못하는 일부 컨텍스트 정보로 소금을 처리하고 MD5와 같은 것을 사용하여 고정 길이 키를 생성하는 것입니다. 나는 이것이 매우 안전하지 않다는 것을 안다.
해독하려면 위의 과정을 반복하고 같은 키를 얻습니다. 그런 다음 해당 키로 데이터를 해독하고 원래 데이터를 다시 가져옵니다.
Android 및 iOS에서 작동하도록 설정되었지만 서로의 데이터를 해독 할 수 없기 때문에 표시 할 수없는 구현상의 차이가 있으며 변경할 수 없다고 알려줍니다. 두 플랫폼 모두에서 AES128으로 암호화 된 데이터의 처음 16 바이트는 항상 동일하지만 그 이후에는 완전히 다릅니다. 무엇을 확인할 수 있습니까?
사용자 경험은 암호로 zip 파일을 공유하는 것과 동일합니다. 사용자는 언제든지 모든 장치에서 암호를 입력하고 BAM은 암호화되지 않은 데이터를받습니다. keyfiles 또는 그 물건을 공유하는 것은 이것의 일부가 아닙니다.
안드로이드에서 IV를 사용하지 않고 그대로 사용하고있었습니다. iOS (모든 0x0)와 동일한 IV를 주면 동일한 결과가 만들어집니다. –