【数据加密、解密】前后端数据传输的过程中,如何进行数据加密传输,保证数据的传输安全,防止被他人窃取

本文主要是介绍【数据加密、解密】前后端数据传输的过程中,如何进行数据加密传输,保证数据的传输安全,防止被他人窃取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 前端进行参数传递的时候 ,有些数据为了安全起见还是需要加密传输的,比如用户密码,比如登录的时候,注册的时候,用户输入的密码,如果明文进行传输还是不太安全的,所以一般可以进行加密后传递到后端。

那么就有这几个问题:

·前端如何进行加密

·后端如何进行解密

·用什么加密算法

一般是用3DES的加密解密方式

前端引用3DES加密库,对数据进行加密,然后传输到后端,后端通过3DES进行解密操作就可以了。

后端java代码如下:加密、解密:

代码中的 SECRECY_KEY  就是 我们用到的加密密钥。你可以改成你自己的。我这里是3DES加密,用到24位的加密密钥。
    public final static String SECRECY_KEY = "123456789987654321123456"; // 24位

package com.xxx.utils;import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Date;/*** 3DES加密解密工具类*/
public class ThreeDESUtils {private final static Logger logger = LoggerFactory.getLogger(ThreeDESUtils.class);/*** 加解密统一编码方式*/private final static String ENCODING = "utf-8";/*** 加解密方式*/private final static String ALGORITHM  = "DESede";/***加密模式及填充方式*/private final static String PATTERN = "DESede/CBC/PKCS5Padding";public final static String SECRECY_KEY = "123456789987654321123456"; // 24位/*** 数据加密* @param message       待加密的数据* @param ivHex         加密偏移量设置* @return              * @throws Exception*/public static String encrypt(String message, String ivHex) throws Exception {if(StringUtils.isBlank(ivHex)){ivHex = DateUtils.formatDate(new Date(),"yyyyMMdd");}final SecretKey key = new SecretKeySpec(SECRECY_KEY.getBytes("utf-8"), ALGORITHM);final IvParameterSpec iv = new IvParameterSpec(ivHex.getBytes("utf-8"));final Cipher cipher = Cipher.getInstance(PATTERN);cipher.init(Cipher.ENCRYPT_MODE, key, iv);final byte[] plainTextBytes = message.getBytes("utf-8");final byte[] cipherText = cipher.doFinal(plainTextBytes);return new sun.misc.BASE64Encoder().encode(cipherText);}/*** 3DES数据解密* @param message       待解密的数据。这个数据已经进行了一次Base64加密* @param ivHex         加密偏移量设置* @return* @throws Exception*/public static String decrypt(String message, String ivHex) throws Exception {if(StringUtils.isBlank(ivHex)){ivHex = DateUtils.formatDate(new Date(),"yyyyMMdd");}final SecretKey key = new SecretKeySpec(SECRECY_KEY.getBytes("utf-8"), ALGORITHM);final IvParameterSpec iv = new IvParameterSpec(ivHex.getBytes("utf-8"));final Cipher decipher = Cipher.getInstance(PATTERN);decipher.init(Cipher.DECRYPT_MODE, key, iv);final byte[] plainText = decipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(message));return new String(plainText, "UTF-8");}}

这篇关于【数据加密、解密】前后端数据传输的过程中,如何进行数据加密传输,保证数据的传输安全,防止被他人窃取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188237

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4