Rumah >Java >javaTutorial >Analisis contoh penyulitan dan penyahsulitan PHP dan Java des
Penyulitan des ialah kaedah penyulitan simetri yang digunakan secara meluas di Internet PHP menyokong penyulitan des melalui perpustakaan sambungan mcrypt Untuk menggunakan penyulitan des dalam Php, anda perlu memasang perpustakaan sambungan mcrypt dahulu
. Berikut ialah contoh penyulitan dan penyahsulitan
Salin kod seperti berikut:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB>($iv_icryptize_ECB>($iv_size_ECB>); , MCRYPT_RAND) ;
$key = "Ini adalah kunci yang sangat rahsia";//Key
$text = "Temui saya pada pukul 11 di belakang monumen.";//Kandungan yang perlu disulitkan
gema ($teks) . /Kandungan Disulitkan
gema mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);//Kandungan yang dinyahsulit
MCRYPT_RIJNDAEL_128, selalunya digunakan dalam algoritma. Terdapat tiga jenis: MCRYPT_RIJNDAEL_192 dan MCRYPT_RIJNDAEL_256 berikut 128, 192, dan 256 mewakili bilangan bit kunci rahsia (iaitu, Kunci yang disulitkan, contohnya, jika MCRYPT_RIJNDAEL_128 panjangnya digunakan akan menjadi 128 bit apabila disulitkan dengan algoritma ini, seperti $key = 'fjjda0&9^$$#+*%$fada', iaitu 20 aksara Dalam penyulitan sebenar, hanya 16 aksara pertama digunakan untuk penyulitan (16*8 =128), yang digunakan dalam PHP yang kurang daripada 128bit '.
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
Keselamatan kelas awam {
penyulitan String statik awam(Input rentetan, Kunci rentetan){
bait[] crypted = null;
cuba{
SecretKeySpec skey = SecretKeySpec baharu(key.getBytes(), "AES");
Sifir sifir = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey);
crypted = cipher.doFinal(input.getBytes());
}tangkapan(Pengecualian e){
System.out.println(e.toString());
}
kembalikan String baharu(Base64.encodeBase64(crypted));
}
nyahsulit String statik awam (Input rentetan, Kunci rentetan){
bait[] output = null;
cuba{
SecretKeySpec skey = SecretKeySpec baharu(key.getBytes(), "AES");
Sifir sifir = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skey);
output = cipher.doFinal(Base64.decodeBase64(input));
}tangkapan (Pengecualian e){
System.out.println(e.toString());
}
kembalikan Rentetan baharu(output);
}
utama lompang statik awam(String[] args) {
Kunci rentetan = "1234567891234567";
Data rentetan = "contoh";
System.out.println(Security.encrypt(data, key));
System.out.println(Security.decrypt(Security.encrypt(data, key), key));
}
}
Atas ialah kandungan terperinci Analisis contoh penyulitan dan penyahsulitan PHP dan Java des. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!