Linux三种加密模式

简介: Linux三种加密模式

概念说明

数据加密

       为了保障数据隐私安全,大多企业在存储和传输过程中,通常会对数据进行加密处理,在进行数据交互和共享时,将数据中的敏感信息如个人身份信息进行脱敏或匿名化处理要进行加密监管。所谓数据加密技术,是指将一个信息(或称明文,plain text)经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。

84a900a1f2c044afbea37f0c118bed52.png

加密类型

不可逆加密

基本概念

       不可逆加密是指通过数据计算加密后的结果,但是通过结果无法计算出加密的数据,简单来说就是对于一些数据加密之后会产生另一个结果,结果不可以根据加密的过程反推出数据,只能通过产生的结果和你知道的结果进行匹配,看看是否一致。

应用场景

包括文档、音视频文件、软件安装包等用新老摘要对比是否一样

密码加密后存到数据库中

代码实现

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class HashingExample {
    public static void main(String[] args) throws NoSuchAlgorithmException {
        String input = "Hello World";
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        byte[] hash = md.digest(input.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) {
            sb.append(String.format("%02x", b));
        }
        String hashedValue = sb.toString();
        System.out.println("Hashed Value: " + hashedValue);
    }
}

对称加密

基本概念

对称加密也称为单密钥加密是指加密和解密的过程使用同一个密钥进行。简单来说就是发送数据者把数据用密钥进行加密,接收数据者用同样的密钥就可以得到加密之前的数据。

优势利弊

优点:生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短

缺点:双方共同的密钥,有一方密钥被窃取,双方都影响

应用场景

登录信息用户名和密码加密、传输加密、指令加密

代码实现

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class SymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String input = "Hello World";
        // 生成密钥
        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        keyGenerator.init(128);
        SecretKey secretKey = keyGenerator.generateKey();
        // 加密
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encryptedBytes = cipher.doFinal(input.getBytes());
        String encryptedValue = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Value: " + encryptedValue);
        // 解密
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedValue));
        String decryptedValue = new String(decryptedBytes);
        System.out.println("Decrypted Value: " + decryptedValue);
    }
}

非对称加密

基本概念

       非对称加密算法需要两个密钥:公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥。简单来说就是甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。

优势利弊

优点:安全系数比较高

缺点:加解密相对速度慢、密钥长、计算量大、效率低

应用场景

CRS请求证书、蓝牙等硬件信息加密配对传输、关键 的登录信息验证。

代码实现

import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Base64;
public class AsymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String input = "Hello World";
        // 生成密钥对
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(2048);
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        PublicKey publicKey = keyPair.getPublic();
        PrivateKey privateKey = keyPair.getPrivate();
        // 加密
        Cipher cipher = Cipher.getInstance("RSA");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encryptedBytes = cipher.doFinal(input.getBytes());
        String encryptedValue = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Value: " + encryptedValue);
        // 解密
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedValue));
        String decryptedValue = new String(decryptedBytes);
        System.out.println("Decrypted Value: " + decryptedValue);
    }

总结提升

不可逆加密(Hashing)

不可逆加密是一种单向加密算法,将输入的数据转换为固定长度的哈希值。

不可逆加密算法是不可逆的,即无法从哈希值还原出原始数据。

常见的不可逆加密算法有MD5、SHA-1、SHA-256等。

不可逆加密常用于密码存储、数字签名等场景。

对称加密(Symmetric Encryption)

对称加密使用相同的密钥进行加密和解密。

对称加密算法的特点是加密和解密速度快,但密钥的安全性需要保证。

常见的对称加密算法有DES、AES等。

对称加密常用于保护数据的机密性。

非对称加密(Asymmetric Encryption)

非对称加密使用一对密钥,包括公钥和私钥。

公钥用于加密数据,私钥用于解密数据。

非对称加密算法的特点是安全性高,但加密和解密的速度较慢。

常见的非对称加密算法有RSA、DSA等。

非对称加密常用于数据的加密和数字签名。

cb94f55e7b4b4fde80cff3fa4bcdc3e8.png


相关文章
|
3月前
|
数据安全/隐私保护
aes之ecb模式的加密解密
aes之ecb模式的加密解密
|
4月前
|
负载均衡 网络协议 Linux
在Linux中, LVS三种模式的工作过程是什么?
在Linux中, LVS三种模式的工作过程是什么?
|
4月前
|
存储 Linux 文件存储
在Linux中,raid0、raid1、raid5 三种工作模式的工作原理及特点?
在Linux中,raid0、raid1、raid5 三种工作模式的工作原理及特点?
|
4月前
|
存储 算法 Linux
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
|
4月前
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?
|
4月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
4月前
|
Linux Apache
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
|
4月前
|
网络协议 Linux 网络安全
在Linux中,我们都知道FTP协议有两种工作模式,它们的大概的⼀个工作流程是怎样的?
在Linux中,我们都知道FTP协议有两种工作模式,它们的大概的⼀个工作流程是怎样的?
|
4月前
|
Linux 网络安全 数据安全/隐私保护
在Linux中,FTP 的主动模式和被动模式是什么?有何区别?
在Linux中,FTP 的主动模式和被动模式是什么?有何区别?
|
4月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?