2017-04-19 1 views
-1

나는 클라이언트 측 암호화를 사용하여 js 및 서버 측 암호 해독을 사용하여 PHP를 사용하여 몇 시간 동안 만 디버깅하여 동일한 암호화 방법을 사용하더라도 크기 등에 관계없이 일치하지 않아야합니다.암호화 클라이언트 측/해독 서버 측 JS - PHP

많은 암호화 js 라이브러리를 사용할 수 있으며 php의 crypt(), mcrypt 함수는 더 이상 사용되지 않습니다.

나는 한 쌍 (예. AES.js 및 AES.php) 검색을 시도했지만 그들 중 누구도

당신이 좋은 암호화 방법을 사용하는 것을 제안 할 수 밖에 일하지? 그들을 구현하는 방법. 왜냐하면 나는 열쇠가 있다고 믿고, IV에 대해서도 들었고, 그것에 대해서조차 모른다. 내가 PHP에서 암호를 해독하려고하고 싶지만 mcrypt_decrypt가되지 않습니다

$(document).ready(function() { 
    $("#login").on("submit", function(event) { 
     var pass = $("#pass").val(); 
     $("#pass").val(CryptoJS.SHA256(pass)); 
     var data = CryptoJS.AES.encrypt($(this).serialize(), $("#token").val()); 
     $("#login").submit(); 
    }); 
}); 

(단순 SHA256 사용)

jQuery를. 이 openssl은 내가 어떻게 사용하는지 모른다.

+0

여기에 몇 가지 노력을 보여 주어야합니다. 저희가 어떻게하고 있고 어떤 문제에 직면했는지 알려주십시오. –

+0

js에서 CryptoJS.AES.encrypt() 함수를 사용하고 있었지만 PHP와 어떻게 일치하는지 모르겠습니다. 나는 php 매뉴얼에서 검색을했고, 필자는 crypt() 및 mcrypt_decrypt()가 더 이상 사용되지 않는 것을 보았다. openssl도 제대로 문서화되지 않았습니다. 일반적으로 나는 암호화/해독 과정에 약간의 단서가 없으므로 시행 착오를 거듭하고있다. 나는 해쉬하는 법을 안다. –

+0

암호화 알고리즘이 다른 여러 가지 맛이 있습니다. 또한 일부 키를 사용하여 데이터를 암호화해야합니다. 그 암호를 해독하려고 할 때 그게 문제 야. 암호화 및 암호 해독을위한 코드를 여기에 공유하십시오 –

답변

-1

당신은 PHP

$Pass = "Passwort"; 
$Clear = "Klartext";   

$crypted = fnEncrypt($Clear, $Pass); 
echo "Encrypred: ".$crypted."</br>"; 

$newClear = fnDecrypt($crypted, $Pass); 
echo "Decrypred: ".$newClear."</br>";   

function fnEncrypt($sValue, $sSecretKey) 
{ 
    return rtrim(
     base64_encode(
      mcrypt_encrypt(
       MCRYPT_RIJNDAEL_256, 
       $sSecretKey, $sValue, 
       MCRYPT_MODE_ECB, 
       mcrypt_create_iv(
        mcrypt_get_iv_size(
         MCRYPT_RIJNDAEL_256, 
         MCRYPT_MODE_ECB 
        ), 
        MCRYPT_RAND) 
       ) 
      ), "\0" 
     ); 
} 

function fnDecrypt($sValue, $sSecretKey) 
{ 
    return rtrim(
     mcrypt_decrypt(
      MCRYPT_RIJNDAEL_256, 
      $sSecretKey, 
      base64_decode($sValue), 
      MCRYPT_MODE_ECB, 
      mcrypt_create_iv(
       mcrypt_get_iv_size(
        MCRYPT_RIJNDAEL_256, 
        MCRYPT_MODE_ECB 
       ), 
       MCRYPT_RAND 
      ) 
     ), "\0" 
    ); 
} 

나는 그것을 확인하지 않았다에서 해독이 코드를 시도 할 수 있습니다, 대단이 시도 할 수 있습니다.

+0

여전히 mcrypt를 사용해도 괜찮습니까? 이보다 먼저 –

+0

을 보았지만 인내심을 가져 주셔서 감사합니다. –

+0

@EhmzYoshinoMamei이 PHP 코드는 원격으로 질문의 JavaScript 코드와 동일한 작업을 수행하지 않습니다. 왜 그걸 받아들 였니? 테스트 해 봤니? –

관련 문제