ColdFusion에서 이와 비슷한 기능을 수행하고자하는이 PHP가 있습니다.PHP 암호화 코드가 ColdFusion으로 변환되었습니다.
function & _encryptMessage($message) {
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($td, $this->key, $this->iv);
$encrypted_data = mcrypt_generic($td, $message);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return base64_encode($encrypted_data);
}
나는 그냥
encrypt(message,"","AES","Base64")
생각하지만 확실히 알 수있는 실제 방법이 없습니다 그것은 아주 느낌이 좋지 않기 때문에 거기에 누군가가 충분히 좋은 것입니다 있을지 궁금 올바른 방향으로 나를 가리켜 라.
업데이트 : this answer은 Mister Dai입니다. 특히 유용했습니다.
그래서 MCRYPT_RIJNDAEL_256은 실제로 block size not the encryption strength을 의미합니다. 암호화 강도는 여전히 256이며 sha-256에서 해시 된 값을 사용하여 PHP에서 소금이 생성됩니다. ivSalt의 길이는 32 바이트 (256bits)이며, AES는 16 바이트 IV 소금을 기대하고 있기 때문에
encrypt(arguments.messageXML,instance.key,"AES/CBC/PKCS5Padding","Base64",ivSalt)
불행하게도이 불면 :
이것은 내가 지금 가지고있는 암호화 호출입니다. here을 보면 AES 용 ColdFusion/Java의 최대 블록 크기는 16 바이트 (128 비트)입니다. 256 비트 블록 크기를 얻는 방법을 볼 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 이런 일을하는
<cfset varName = HASH("i want this string to be encrypted", "SHA") />
내가 암호 저장 및 민감한 다른 위해 무엇을 보통 : 심지어이
<cfset stringName = "variable 1: " & variable1 & " some more text" />
<cfset varName = HASH(stringName, "SHA") />
나 :
동일한 메시지를 사용하여 두 개를 실행하면 같은 결과가 나타 납니까? –
Dave와 동의합니다. 하지만 나에게 뛰어 내리는 몇 가지 것들이 있습니다 : 1) 당신의 encrypt()'key'가 없거나/공백이 있습니다. 2) 당신이'iv'를 통과하지 못하고 3) 암호화 모드가 php에 의해 사용 된 것과 일치해야합니다. – Leigh
Ah ... 나는 방금 PHP에 관해 뭔가를 기억했다. this-> 키는 ColdFusion에서 this.key와 같습니다. 그래서 저는 PHP 파일의 나머지 부분에서 열쇠와 IV 소금을 파헤쳐야합니다. 이것이 제가 좀 더 이해할 수 있도록 도와 줄 것입니다. –