उम्मीद है कि यह आपको शुरू कर सकता है। त्रुटि प्रबंधन गुम है और गुप्त कुंजी को कोडित किया गया है। उन दोनों को उत्पादन गुणवत्ता कोड के लिए संबोधित करने की आवश्यकता होगी। जावा की ओर से आप Java Cryptography Architecture (JCA) उपयोग कर सकते हैं:
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public final void testTesting() throws Exception {
final String plainText = "plain text";
final String result = encrypt(plainText);
System.out.println(result);
}
public String encrypt(final String plainText) throws Exception {
final byte[] data = plainText.getBytes("UTF-8");
final byte[] encoded = encrypt(data);
final String result = new String(encoded);
return result;
}
public byte[] encrypt(final byte[] data) throws Exception {
// this is just an example key, real code should use a properly generated shared secret
final byte[] secret = new byte[] {42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42};
final SecretKeySpec key = new SecretKeySpec(secret, "AES");
final Cipher encryptCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
final byte[] iv = encryptCipher.getIV();
final byte[] encrypted = encryptCipher.doFinal(data);
final int outputLength = encrypted.length;
final int ivLength = iv.length;
final byte[] results = new byte[outputLength + ivLength];
System.arraycopy(iv, 0, results, 0, ivLength);
System.arraycopy(encrypted, 0, results, ivLength, outputLength);
return DatatypeConverter.printBase64Binary(encoded);
}
पीएचपी ओर से, आप Mcrypt की जरूरत करने जा रहे हैं।
<?php
$key = base64_decode('KioqKioqKioqKioqKioqKg==');
$input = base64_decode($_GET['input']);
$plain_text = substr($input, 16);
$initialization_vector = substr($input, 0, 16);
echo pkcs5_unpad(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $plain_text, MCRYPT_MODE_CBC, $initialization_vector));
function pkcs5_unpad($text) {
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text)) {
return false;
}
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {
return false;
}
return substr($text, 0, -1 * $pad);
}
?>
समारोह pkcs5_unpad
here से नकल किया गया था के बाद से ऐसा लगता है कि पीएचपी Mcrypt PKCS5 गद्दी के लिए समर्थन शामिल नहीं है। जावा कोड उस एन्क्रिप्ट करने के लिए प्रयुक्त प्रारंभिक वेक्टर के साथ डेटा उपसर्ग करता है। इसके बाद PHP कोड इसे दो में विभाजित करता है, प्रारंभिक वेक्टर और एन्क्रिप्टेड डेटा।
यह कोड CBC मोड में 128 बिट AES (Rijndael) का उपयोग करता है जो अधिकांश उपयोगों के लिए पर्याप्त सुरक्षित होना चाहिए। सरल एन्क्रिप्शन के अतिरिक्त, मैं का उपयोग करके here का वर्णन करने की सलाह देता हूं ताकि यह सुनिश्चित किया जा सके कि डेटा छेड़छाड़ नहीं किया गया है। जावा में एचएमएसी करने के लिए, Mac कक्षा का उपयोग करें। PHP के लिए, Mhash देखें।
वाह हाँ यह वही है जो मुझे चाहिए। मैं इसे आज़मा दूंगा, यह सब सेट करने के लिए धन्यवाद, वापस रिपोर्ट करेगा। – user246114