关于加密的了解

本文介绍了加密的基本概念,包括对称加密如AES和DES,它们使用相同的密钥进行加密和解密。同时,提到了非对称加密如RSA,其特点是加密和解密使用不同密钥,公钥可公开,私钥需保密。加盐技术也在文中被提及,用于增强密码安全性。示例代码展示了AES加密的实现。
摘要由CSDN通过智能技术生成
关于加密

1、加密了解

​ 对称加密,应用较早的加密算法,具体就是数据发送方将明文(原始数据)和加密密钥一起经过加密处理后,使其编程机器复杂的加密密文发送出去。接收方则使用密钥和相同算法的逆算法才能对密文进行解密。

​ 加密对象是二进制数据

​ 关于加密的对称与否,就是对称加密是加密和解密都是使用相同的密钥,而非对称加密加密和解密时使用的密钥不一样。

2、加密和解密是否使用同一个密钥

​ 对称加密:AES、DES,这两个是使用同一个密钥

//举例AES加密
输入要加密的str,输入密钥
这里new了一个Java的Cipher类,一般为了创建Cipher对象,会调用getInstance方法
 /**使用AES对字符串加密
     * @param str utf8编码的字符串
     * @param key 密钥(16字节)
     * @return 加密结果
     * @throws Exception
     */
    public static byte[] aesEncrypt(String str, String key) throws Exception { 
           if (str == null || key == null) return null; 
           Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); 
           cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes("utf-8"), "AES")); 
           byte[] bytes = cipher.doFinal(str.getBytes("utf-8")); 
           return  bytes;
       } 

​ 非对称加密:RSA,加密和解密时使用的是不同的密钥,分为公钥和私钥,公钥可以公开,私钥自己保存。原理是利用两个大质数相乘十分容易,但是去对其进行因素分解则十分困难。所以可以将乘积作为密钥使用。

比如gitee,登录码云,配置的公钥是该账号、本地推送代码到码云时则用的是私钥加密

3、加密结果是否能被解密

可逆加密:

不可逆加密:数据经过算法运算后,都无法恢复原数据,除了用户,数据库管理人员都无法得知用户密码。

4、加盐

// 加盐: 在明文字符串中拼接 我们自己的字符串,然后加密
        String pwd = member.getPassword()+".!#123abc";
        member.setPassword(MD5.encrypt(pwd));

        baseMapper.insert(member);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值