2 방향 암호화 측면에서 압도적 인 태도를 보입니다. 많은 정보가 있지만 내 필요에 맞는 단단한 것을 찾을 수 없습니다. 내가 지금처럼 해독 할 때암호화 된 데이터를 mySQL에 저장하는 방법
~/�Jꎈ*3��9k��Z�f������ï
및 읽을 수없는 문자 :
나는 PHP에서 다음과 같은 한 :
function encrypt($key, $string){
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
return $encrypted;
}
function decrypt($key, $encrypted){
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
return $decrypted;
}
//Stripped out code for readability
$encryption_Key = 'password'; //such strong, many vulnerable
$name = encrypt($encryption_Key, $_POST['name']);
$stmt = $conn->prepare("UPDATE Customers SET
name = ? WHERE blah = ?");
$stmt->bind_param('si', $name, $blah);
$stmt->execute();
$stmt->close();
하지만 MySQL을보고, 나는 같은 전문 용어를 얻을
$name = decrypt($encryption_Key, $name);
이름 열의 입력란 유형은 현재
012입니다.varchar(200)
필드 유형으로 이진 (binary) 또는 blob을 사용하는 예제를 보았지만 많은 행운이 없습니다. 올바른 방향으로 도움을 주시면 대단히 감사하겠습니다.
코드가 제대로 작동했습니다. DB와 테이블의 인코딩이 무엇인지 확인하십시오. –
나는 이것을 해결했지만, 데이터 정렬을 utf8_general_ci로 변경해야했습니다. 마침내이 작은 장애물을 통과했습니다! –