美文网首页
深入理解加密解密

深入理解加密解密

作者: 善思者_tin | 来源:发表于2020-02-19 22:11 被阅读0次

一、概述

在开发项目中我们必然会涉及到加密解密,我们常需要用到加解密算法,加解密算法主要分为三大类:

1、对称加密算法,如:AESDES3DES

2、非对称加密算法,如:RSADSAECC

3、散列算法,如:MD5SHA1HMAC

接下来对它们各自的算法和在项目中的应用进行具体分析。

二、各算法对比

对称加密算法(加解密密钥相同)

非对称算法(加密密钥和解密密钥不同)

散列算法比较

对称与非对称算法比较

注:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数

三、项目中常用总结

对称加密: DES(56位),

非对称加密: ECC(160位)或RSA(1024),

消息摘要: MD5

数字签名:DSA

其中,AES和MD5最为常用,

四、应用案例

4.1、DES应用之用户ID加解密

背景介绍

有时候我们不希望直接把ID暴露给用户,因为有规则的ID,容易泄露信息,同时有可能被第三方直接遍历抓取资源。为了防止数据库条目 ID 直接暴露给用户,需要对ID进行按照自己的规则加密

加解密核心代码

加密:

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");

SecretKey securekey = keyFactory.generateSecret(dks);

cipher = Cipher.getInstance(desMode);

cipher.init(Cipher.ENCRYPT_MODE, securekey, spec);

解密:

dks =new DESKeySpec(key);

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");

SecretKey securekey = keyFactory.generateSecret(dks);

cipher = Cipher.getInstance(desMode);

cipher.init(Cipher.DECRYPT_MODE, securekey, spec);

4.2、RSA之密码明文传输

背景介绍:

当用户设置或者更改密码时,通过输入的密码在页面的表单数据中显示为明文,这样可能会窃取,产生安全风险。因此需要采用一定的规则对其进行密文显示。

RSA和核心代码

前端:引入jsencrypt.jsp进行加密运算。

后端:通过RSAUtils里面的解密方法进行解密。

4.3、MD5之签名加密

背景介绍

系统从外部获取数据时,通常采用API接口调用的方式来实现。请求方和接口提供方之间的通信过程,有这几个问题需要考虑:

1)、请求参数是否被篡改;

2)、请求来源是否合法;

3)、请求是否具有唯一性。

为了保证请求来源的合法性,需要求调用方按照约定好的算法生成签名字符串,作为请求的一部分,接口提供方验算签名即可知是否合法。

MD5签名加密核心代码

public static String getEncryptionUtf8(String originString)

throws UnsupportedEncodingException {

String result ="";

if (originString !=null) {

try {

// 指定加密的方式为MD5

 MessageDigest md = MessageDigest.getInstance("MD5");

md.update((originString).getBytes("UTF-8"));

byte b[] = md.digest();

// 进行加密运算

            int i;

StringBuffer buf =new StringBuffer("");

for(int offset=0; offset

i = b[offset];

if(i<0){

i+=256;

}

if(i<16){

buf.append("0");

}

buf.append(Integer.toHexString(i));

}

result = buf.toString();

}catch (NoSuchAlgorithmException e) {

//e.printStackTrace();

        }

}

return result;

}

相关文章

  • 深入理解加密解密

    一、概述 在开发项目中我们必然会涉及到加密解密,我们常需要用到加解密算法,加解密算法主要分为三大类: 1、对称加密...

  • 对称加密

    介绍 加密和解密都使用同一把秘钥,这种加密方法称为对称加密,也称为单密钥加密。简单理解为:加密解密都是同一把钥匙 ...

  • 简述HTTPS

    要理解HTTPS首先要理解对称加密和非对称加密 对称加密 加密和解密用的都是同一个密钥。 非对称加密 有两个密钥,...

  • AES加密代码(.net和java可互转)

    .net加密解密代码 java加密解密代码

  • Https的交互流程

    先理解几个概念对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等,...

  • https原理

    https原理 概念 协议 https协议:可以理解为HTTP+SSL/TLS 加密算法 对称加密加密和解密都是使...

  • 最近用到的一些String的一些常用方法

    string的Base64加密/解密 oc 加密 oc解密 swift 加密 swift 解密 oc字典转jso...

  • https简单介绍

    # 对称加密 加密解密使用同一个密钥,速度较快,如aes # 非对称加密 公钥加密,私钥解密,私钥加密,公钥解密,...

  • 加密

    来源于:MD5加密,Base64加密/解密,AES加密/解密

  • Rsa加解密

    /*** Rsa 加解密* 用法:* (1)公钥加密,私钥解密* (2)私钥加密,公钥解密*/class ...

网友评论

      本文标题:深入理解加密解密

      本文链接:https://www.haomeiwen.com/subject/swfnfhtx.html