AES 암호화에 문제가있어서 고객이 "암호 해독"을 위해 PHP 서버 코드를 보여주었습니다. 흥미롭게도 정확한 코드는 S.O.에서 가져 왔습니다. (당연하지). 나는 고객이 나에게 전달한 코드가 똑같은 코멘트를 가졌기 때문에 이것을 발견했다! :)어떻게이 PHP 라인을 Java로 포팅 할 수 있습니까?
어쨌든, this S.O.에서 가져온 PHP 코드입니다. 문제.
나는 자바와 동일한 작업을 수행하려고하지만이 정확한 라인이 추가되어 모르는 :
$key = 'a16byteslongkey!';
$padded_key = $key . str_repeat(chr(0x00), 16); // Argh!
(! 상기 // 아아 주석 광산이 아니었다주의)
32 비트 키를 만들기 위해 chr (0x00)을 추가하려고합니까 ($ 키가 16이기 때문에?) 그렇다면 자바에서 어떻게 동일한 작업을 수행 할 수 있습니까?
@ 조쉬 아마 내가 분명히해야한다 : PHP에서 chr (0x00) 무엇입니까? –
PHP에서 문자열은 바이너리 안전합니다 (문자열의 모든 "문자"는 실제로는 바이트입니다).하지만 Java의 문자열 인스턴스는 실제로는 바이트가 아니라 문자를 나타냅니다. 바이너리 암호화 키의 경우'String' 객체를 사용해서는 안되며'byte []'또는'Key' 클래스와 같은 것을 사용해야합니다. –
@AnotherCode 실제로 해명 해 주셔서 감사합니다. 서버 측에서 고객이 "해킹"을하고 16 개의 0으로 16 개의 키를 완성 했으므로 32 개를 추가했습니다 ... 고정 키에 16 개의 "0"이 채워진 후 모두 작동했습니다. ;) –