2017-03-06 8 views
-4

以下はJava関数です。私はPHP上でこの関数にしたい。すでに私は、コードを使用しているJAVA関数をPHPに隠す

public static String getPassword(String spId, String password, String timestamp) 
{ 
    try { 
     String dgStr = spId + password + timestamp; 

     byte[] enc = MessageDigest.getInstance("SHA-256").digest(dgStr.getBytes()); 
     return new String(Base64.encodeBase64(new String(Hex.encodeHex(enc)).toUpperCase().getBytes())); 
    } catch (NoSuchAlgorithmException ex) { 
     ex.printStackTrace(); 
    } 
    return ""; 
} 

BASE64_ENCODE(hash_hmac( "SHA256"、$ spPassword、真))、以下を参照してください。

有効ですか?そうでなければ私に提案してください。

+0

これはJavaスクリプト機能です。パスワードの暗号化のためにPHPで同じ機能が必要です。 – Aphrodite

答えて

1

あなたのJava関数の正確な変換は次のとおりです。

function makeHash($spID,$password) 
{ 
    $timestamp = time(); 
    return hash('sha256',$spID.$password.$timestamp); 
} 

が好き、それを使用します。

echo makeHash(12,'password123'); 
+0

パスワードを暗号化する次のアルゴリズムのPHPを教えてもらえますか? 1暗号化するデータブロックを作成する 2暗号化されていないパスワード値を書き込む 3ステップ2で作成したデータのブロックを、パスワードキー証明書のパブリック部分で暗号化する。 PKCS#1.5(OAEPではなく)でRSAアルゴリズムを使用し、結果を暗号化されたストリームに追加すると、これはブローカ経由で送信される暗号化されたパスワードになります。また、あなたは私がしようとしてmはbase64エンコード – Aphrodite

+0

を使用して文字列に暗号化されたバイト配列を結果として 4変換がhttp://php.net/manual/en/mcrypt.ciphers.php –

+0

を通過してください}「RSA/NONE/PKCS1Padding」を使用することができますこれは暗号文を得るために - $ key = pack( 'H *'、$ keyValue); $ key = pack( 'H *'、$ keyValue); $ key_size = strlen($ key); $ plaintext = '暗号化のためにパスワードを渡す' $ iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128、MCRYPT_MODE_CBC); $ iv = mcrypt_create_iv($ iv_size、MCRYPT_RAND); 位(MCRYPT_RIJNDAEL_128、$キー、$平文、MCRYPT_MODE_CBC $ IV)AES(ラインダールブロックサイズ= 128) $暗号文= MCRYPT_ENCRYPTと互換性のある暗号文を作成します。 $ ciphertext = $ iv。 $ ciphertext; $ ciphertext_base64 = base64_encode($ ciphertext); – Aphrodite