0

내부적 인 이유 때문에 데이터베이스에서 타사 계정의 암호를 저장해야하므로 암호를 쉽게 복구 할 수 없기 때문에 해시를 사용할 수 없습니다.데이터베이스의 일반 텍스트 보안 암호

일반 텍스트 암호를 암호화하는 방법이있어서 해커가 mysql 테이블을 가지고 있어도 쉽게 해독 할 수 없지만 암호 해독을 통해 원래 양식을 볼 수 있습니까?

+0

왜 암호를 복구 할 수 있어야합니까?! –

+0

읽어보기 : https://www.troyhunt.com/lessons-in-website-security-anti/ –

+0

이는 제 3 자 웹 사이트에있는 계정이므로 필요한 경우 로그인 할 수 있어야합니다. – maddo7

답변

1

암호를 해독하는 것은 좋지 않습니다. 그러나 귀하의 요구 사항이 단순히 인 경우 단순히 문자열의 암호화 또는 암호 해독 방법을 사용하는 것보다 낫습니다.

최근에 문자열을 암호화하거나 해독하기 위해 아래 기능을 사용했습니다. URL을 보호하기 위해. GET 메소드 요청을 사용하는 동안 url을 보호하기 위해이 암호화 또는 암호 해독 기능을 사용할 수도 있습니다.

<?php 
define("ENCRYPTION_KEY", "[email protected]#$%^&*"); 
$string = "Plain Text"; 

echo $encrypted = encrypt($string, ENCRYPTION_KEY); 
echo "<br />"; 
echo $decrypted = decrypt($encrypted, ENCRYPTION_KEY); 

// this function will return encrypted string 
function encrypt($pure_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv); 
    return $encrypted_string; 
} 

// this function will return encrypted string 
function decrypt($encrypted_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv); 
    return $decrypted_string; 
} 
?> 

그래서 데이터베이스 에서이 암호화 기능 저장소 일반 텍스트를 사용하고 다른 기능을 사용하여 검색 귀하의 목적을 위해.

+0

ECB 모드는 실제로 결코 좋은 선택이 아니며 IV를 전혀 사용하지 않으므로'mcrypt_get_iv_size (MCRYPT_BLOWFISH, MCRYPT_MODE_ECB) '의 결과는 항상 0이됩니다. – martinstoeckli

+0

무엇을 사용 하시겠습니까? – maddo7