程序编程中的加密方法可以分为几类,包括对称加密、非对称加密和哈希算法。以下是一些常见的方法:
对称加密算法
DES:数据加密标准,使用56位密钥。
3DES:三重数据加密算法,使用168位密钥。
AES:高级加密标准,使用128位、192位或256位密钥。
非对称加密算法
RSA:非对称加密算法,使用一对公钥和私钥。
Diffie-Hellman:用于安全密钥交换。
哈希算法
MD5:消息摘要算法5,不可逆,通常用于验证数据完整性。
SHA-1:安全散列算法1。
SHA-256:安全散列算法256。
示例代码
Python
```python
from cryptography.fernet import Fernet
生成密钥
key = Fernet.generate_key()
f = Fernet(key)
加密消息
message = "这是一条秘密消息!"
encrypted_message = f.encrypt(message.encode())
print(f"加密后的消息: {encrypted_message}")
解密消息
decrypted_message = f.decrypt(encrypted_message).decode()
print(f"解密后的消息: {decrypted_message}")
```
C语言
```c
include include void encryptString(char *str, int key) { int i = 0; while (str[i] != '\0') { str[i] += key; // 位移加密 i++; } } int main() { char str[] = "Hello World"; int key = 3; encryptString(str, key); printf("Encrypted string: %s\n", str); return 0; } ``` Java ```java import java.nio.charset.StandardCharsets; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; public class EncryptFile { public static void main(String[] args) throws Exception { String inputFile = "input.txt"; String password = "12345678"; String outputFile = "output.txt"; encrypt(inputFile, password, outputFile); decrypt(outputFile, password); } public static void encrypt(String inputFile, String password, String outputFile) throws Exception { SecretKey key = generateKey(password); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] input = readFile(inputFile); byte[] encrypted = cipher.doFinal(input); writeFile(outputFile, Base64.getEncoder().encodeToString(encrypted)); } public static void decrypt(String outputFile, String password) throws Exception { SecretKey key = generateKey(password); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, key); byte[] encrypted = Base64.getDecoder().decode(readFile(outputFile)); byte[] decrypted = cipher.doFinal(encrypted); writeFile(outputFile, new String(decrypted)); } private static SecretKey generateKey(String password) throws Exception { KeyGenerator keyGen = KeyGenerator.getInstance("AES"); keyGen.init(128); byte[] keyBytes = password.getBytes(StandardCharsets.UTF_8); return new SecretKeySpec(keyBytes, "AES"); } private static byte[] readFile(String fileName) throws Exception { // 读取文件内容 return new byte; } private static void writeFile(String fileName, String content) throws Exception { // 写入文件内容 } } ``` 建议 根据具体需求选择合适的加密算法,确保数据的安全性。 妥善保管密钥,避免泄露。选择合适的加密算法:
密钥管理: