• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    利用JAVA实现DES加密算法

    DES加密介绍
    DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力,24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DES的JAVA实现。

    JAVA实现
    加密
    代码有详细解释,不多废话。
    注意:DES加密和解密过程中,密钥长度都必须是8的倍数

    复制代码 代码如下:

            public byte[] desCrypto(byte[] datasource, String password) {           
                    try{
                    SecureRandom random = new SecureRandom();
                    DESKeySpec desKey = new DESKeySpec(password.getBytes());
                    //创建一个密匙工厂,然后用它把DESKeySpec转换成
                    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                    SecretKey securekey = keyFactory.generateSecret(desKey);
                    //Cipher对象实际完成加密操作
                    Cipher cipher = Cipher.getInstance("DES");
                    //用密匙初始化Cipher对象
                    cipher.init(Cipher.ENCRYPT_MODE, securekey, random);
                    //现在,获取数据并加密
                    //正式执行加密操作
                    return cipher.doFinal(datasource);
                    }catch(Throwable e){
                            e.printStackTrace();
                    }
                    return null;
            }

    解密
    代码有详细注释,不多废话
    复制代码 代码如下:

            private byte[] decrypt(byte[] src, String password) throws Exception {
                    // DES算法要求有一个可信任的随机数源
                    SecureRandom random = new SecureRandom();
                    // 创建一个DESKeySpec对象
                    DESKeySpec desKey = new DESKeySpec(password.getBytes());
                    // 创建一个密匙工厂
                    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                    // 将DESKeySpec对象转换成SecretKey对象
                    SecretKey securekey = keyFactory.generateSecret(desKey);
                    // Cipher对象实际完成解密操作
                    Cipher cipher = Cipher.getInstance("DES");
                    // 用密匙初始化Cipher对象
                    cipher.init(Cipher.DECRYPT_MODE, securekey, random);
                    // 真正开始解密操作
                    return cipher.doFinal(src);
            }

    测试场景
    例如,我们可以利用如上函数对字符串进行加密解密,也可以对文件进行加密解密,如:
    复制代码 代码如下:

                    //待加密内容
                    String str = "测试内容";
                    //密码,长度要是8的倍数
                    String password = "12345678";
                    byte[] result = DESCrypto.desCrypto(str.getBytes(),password);
                    System.out.println("加密后内容为:"+new String(result));

                    //直接将如上内容解密
                    try {
                            byte[] decryResult = des.decrypt(result, password);
                            System.out.println("加密后内容为:"+new String(decryResult));
                    } catch (Exception e1) {
                            e1.printStackTrace();
                    }

    您可能感兴趣的文章:
    • 分享Java常用几种加密算法(四种)
    • java自带的MessageDigest实现文本的md5加密算法
    • 使用java自带des加密算法实现文件加密和字符串加密
    • java实现MD5加密算法的实例代码
    • java实现的AES加密算法完整实例
    • java异或加密算法
    • RSA加密算法java简单实现方法(必看)
    • 详解Java中实现SHA1与MD5加密算法的基本方法
    • JAVA实现caesar凯撒加密算法
    • java实现同态加密算法的实例代码
    上一篇:使用Navicat Premium将SQLServer数据导出为sql格式
    下一篇:SQL Server 2008怎样添加自增列实现自增序号
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    利用JAVA实现DES加密算法 利用,JAVA,实现,DES,加密,