欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php java des加密解密

張越彬1年前7瀏覽0評論

隨著互聯網的發展,數據安全問題越來越受到關注,加密技術也越發重要。在Web應用程序中,加密技術主要應用于對傳輸數據的加密和對敏感數據的加密存儲。PHP和Java語言中都提供了DES加密算法的實現。

DES(Data Encryption Standard)是一種對稱密鑰加密算法,也就是加密和解密使用同一個密鑰。它使用64位的密鑰對64位的明文進行加密,輸出密文也是64位。由于DES算法使用的密鑰長度較短,易受到暴力破解攻擊。因此,現在的應用場景中更多采用AES加密算法。

在PHP中使用DES算法進行加密和解密需要引入mcrypt擴展。

//加密
$key = '12345678';
$text = 'hello world';
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB), MCRYPT_RAND);
$ciphertext = mcrypt_encrypt(MCRYPT_DES, $key, $text, MCRYPT_MODE_ECB, $iv);
//解密
$decrypt_text = mcrypt_decrypt(MCRYPT_DES, $key, $ciphertext, MCRYPT_MODE_ECB, $iv);

Java中的DES加密算法使用JCE(Java Cryptographic Extension)實現。建議使用JDK8及以上版本,因為JDK8開始移除了舊版加解密算法。

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class DesEncryption {
public static void main(String[] args) throws Exception {
String key = "12345678"; //密鑰
String text = "hello world"; //明文
//生成密鑰
KeyGenerator kg = KeyGenerator.getInstance("DES");
kg.init(56);
SecretKey sk = kg.generateKey();
byte[] iv = new byte[8];
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, sk, new javax.crypto.spec.IvParameterSpec(iv));
byte[] ciphertext = cipher.doFinal(text.getBytes());
String encryptedText = Base64.getEncoder().encodeToString(ciphertext);
//解密
cipher.init(Cipher.DECRYPT_MODE, sk, new javax.crypto.spec.IvParameterSpec(iv));
byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
String decryptedText = new String(decrypted, StandardCharsets.UTF_8);
}
}

使用加密技術可以保證數據傳輸和存儲時的安全性,為Web應用程序提供了良好的用戶隱私保護。對于初學者來說,掌握加解密技術是Web開發的基礎技能之一。