java安全(一)DES 的简单使用和加密过程(原理)

最近工作中用到一些加密的东西,就顺便学习一下,整理一下。今天主要整理的是对称加密,他的代表就是DES。

学习DES之前要先问几个问题?

  • 什么是DES算法

    百度百科:
    DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

  • DES的基本原理是什么呢
    百度百科:

    其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。

我们从上可以知道:
1. DES 是对称加密/解密算法,而且明文是按照64位进行分组进行加密/解密的。
2. DES加密解密的秘钥长度是64位 但实际用来参与加密解密算法的只有56位 那8位是奇偶校验位
3. 加密/解密 的过程就是把明文分割成一组一组64位的小块 来和秘钥做一些替代、交换等转换最终生成一个加密/解密的块,最终把所有的加密/解密后的64位块组合起来 最终形成的就是加密后的密文/解密后的明文。
4. DES加密 参数有3个 分别是 加密的秘钥key 被加密的数据 data 以及加密还是解密操作 mode。

DES 简单代码示例

import java.security.SecureRandom;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.SecretKeyFactory;
import javax.crypto.SecretKey;
import javax.crypto.Cipher;

public class Test {
    public static void main(String[] args) {
        String str = "测试内容";
        try{
        //===========================生成秘钥开始=======================
            
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值