나는 암호화 된 문자열로 이미지 파일 이름을 변경하고 싶습니다.양방향 암호화 된 이미지 파일 이름
내가 또한 필요
- 이 동일한 암호를 사용하여 원래 문자열보다 여러 시간을 암호화 등, 같은 문자열 암호화 된 문자열을 해독해야
- (2 방식의 토굴)
어떤 PHP 메소드를 사용할 수 있습니까? mcrypt는 수년간 업데이트되지 않았으며 openssl_crypt는 암호가 같을지라도 암호화 할 때마다 다른 암호화 된 문자열을 반환합니다.
감사합니다.
나는 암호화 된 문자열로 이미지 파일 이름을 변경하고 싶습니다.양방향 암호화 된 이미지 파일 이름
내가 또한 필요
어떤 PHP 메소드를 사용할 수 있습니까? mcrypt는 수년간 업데이트되지 않았으며 openssl_crypt는 암호가 같을지라도 암호화 할 때마다 다른 암호화 된 문자열을 반환합니다.
감사합니다.
openssl_encrypt & 공동해야합니다. 예 :
<?php
$data='foo.jpg';
$method='AES-192-CBC';
$password='ogiughjklpdeorivjrhfnd';
$iv=base64_encode(random_bytes(10));
$encrypted=array();
for($i=0;$i<10;++$i){
$encrypted[]=openssl_encrypt($data,$method,$password,0,$iv);
}
$decrypted=openssl_decrypt ($encrypted[0] ,$method ,$password,0,$iv);
var_dump($data,$encrypted[0],$decrypted,$data===$decrypted,$encrypted[2]===$encrypted[7],$encrypted);
인용 openssl_crypt will return different encrypted strings each time I encrypt (even if the password is the same).
은 금지 - AES-CBC-192,만큼 암호 AND IV와 동일하다. 나는 IV가 처음부터 동일한 데이터가 정확히 동일한 암호화 된 형식으로 암호화되지 않도록하기 위해 발명 된 이유라고 생각합니다.
기술적으로는 솔루션을 제공했지만 IV를 재사용하면 대부분의 시스템의 보안이 깨졌습니다. –
@ErikvanVelzen 그래,하지만 고유 IV의 적절한 사용은 기본적으로 '똑같은 데이터를 두 번 암호화하면 똑같은 출력이 나옵니다'라는 요구 사항과 근본적으로 양립 할 수 없다고 생각합니다. 정확히 IV가 예방해야하는 것입니다 – hanshenrik
왜 복용하고 있습니까? 임의 바이트, IV가 만들어지는 것들, 그리고 그들을 base64'ing? 왜 AES-192를 사용하고 있습니까?IV가 무엇인지에 대한 근본적인 오해가 무엇입니까? – Sammitch
블록 암호를 사용해야합니다.
나는
가 모두 올바르게 사용하기 쉽고 명확한 문서가 젠드 \ 크립트 \ BlockCipher 또는 \ 나트륨 \이 crypto_secretbox 좋을 것.
openssl_crypt는 보안을 위해 동일한 데이터가있는 다른 문자열을 반환해야합니다. 위의 두 가지 방법 모두 동일하게 적용됩니다.
감사합니다 @Erik, 나는 그들을 시도 할 것입니다 –
그리고 아무도 당신의 3 제안은 IV를 올바르게 사용하여 요구 사항을 충족시킵니다. 그것을 직면하면, 이것에 IV를 다시 사용해야합니다. – hanshenrik
[이유?] (http://meta.stackexchange.com/questions/66377/what-is) -the-xy-problem # 66378) – Sammitch
이미지를 생성 할 메소드에 전달 된 변수 params (높이, 너비 등)를 기반으로 고유 한 파일 이름을 만들기 위해 @Sammitch –
"myimage_200_400_stretched .jpg ". sha256과 같은 일방적 인 인증되지 않은 해시는 파일 캐싱에도 주로 사용되며 대부분의 시스템에는 양방향 인증이나 인증이 필요하지 않습니다. –