加密问题~

单向加密:

单向加密也称为哈希加密,指的是一种不可逆的加密方式。对于一个给定的明文,通过哈希算法可以生成一个固定长度的密文(哈希值),但无法通过这个密文来推算出原始明文。常见的哈希算法有 MD5、SHA-1、SHA-256 等。单向加密通常用于验证数据的完整性和真实性,例如,在用户注册和登录时,将用户密码进行哈希加密后保存到数据库中,这样即使数据库泄漏,黑客也无法直接获取用户密码。当用户登录时,将输入的密码再次进行哈希加密并与数据库中保存的密码进行比较,如果一致则认证通过。

双向加密:

双向加密也称为对称加密,指的是一种可逆的加密方式。在双向加密中,使用同一个密钥(称为对称密钥)进行加密和解密。对于一个给定的明文,通过双向加密算法可以使用密钥生成一个密文,同时也可以使用相同的密钥将密文还原成明文。常见的双向加密算法有 DES、AES、RC4 等。双向加密通常用于对数据进行保密和传输,例如,通过 HTTPS 协议对网站的敏感数据进行传输时,使用了对称密钥对数据进行加密和解密。

单向加密和双向加密都属于对称加密算法。单向加密也被称为哈希算法,常用于验证数据的完整性和真实性。在单向加密中,同一个输入数据会得到同一个输出结果,但无法根据输出结果推出输入数据。常用的单向加密算法有 MD5、SHA-1、SHA-256 等。

双向加密则是指加密和解密使用同一个密钥的算法,即对称加密算法。在双向加密中,同一个密钥既可以用于加密数据,又可以用于解密数据。常见的对称加密算法有 DES、3DES、AES 等。

非对称加密是指加密和解密使用不同密钥的算法。在非对称加密中,每个用户拥有一对公私钥,其中公钥用于加密数据,私钥用于解密数据。受保护的数据发送方在使用收件人的公钥加密数据后发送给收件人,收件人获取数据后使用自己的私钥进行解密。常见的非对称加密算法有 RSA、DSA 等。

总的来说,单向加密和双向加密属于对称加密算法,适用于验证数据的完整性和保密性;而非对称加密则是一种非常安全的加密方式,适用于数据传输中的身份验证、密钥交换等场景

  • 单向加密

    import { MD5 } from 'crypto-js';
    
    MD5('hello world').toString()
    
  • 非对称加密

    import JSEncrypt from "jsencrypt";
    const rsa = new JSEncrypt();
    // 生成密钥对,指定 keysize
    rsa.getKey(10);
    
    // 获取公钥和私钥
    const publicKey = rsa.getPublicKey();
    const privateKey = rsa.getPrivateKey();
    console.log(publicKey, privateKey);
    
    const change = (e) => {
      // 公钥进行加密
      const encryptData = encodeURIComponent(rsa.encrypt(e.target.value));
      console.log(encryptData);
    
      // 私钥进行解密
      const decryptData = rsa.decrypt(decodeURIComponent(encryptData));
      console.log(decryptData); // 输出 "Hello, world"
    };
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值