数据传输安全(为支付宝第三方做铺垫)

加解密:防止被拦截看到敏感信息

身份认证:防止伪造 签名

不可逆的加密技术

不可逆加密技术不能用于传输数据,一般用于用户注册,对用户的密码加密

只能加密不能解密,常见算法md5,用户注册加密不能解密,使用场景对密码比对。

明文+MD5+盐值

只能加密不能解密

可逆的加密技术

既可以加密也可以解密

对称的可逆加密技术

加密和解密的秘钥都是同一个

典型代表 AES        DES  一个秘钥加解密,双方先交换秘钥,交换完之后知道是哪一个。这个适合自己系统,比如自己用户密码进行加密。比如配置选项,yml,数据库账户密码加密。

但是都已经是自己的系统,那为什么要给自己加密,莫名其妙。

这个不安全,因为秘钥拦截怎么办

不能用于外部系统之间远程调用

如何对自己yml中mysql 账号和密码加密,网上一搜就搜得到。

导包

导工具类

自己把明文密码转成加密后的

放到yml中就可以了

配置秘钥和加解密算法

解密后的密码重新设置给datasourse

修改数据库的配置文件内容信息

非对称的可逆加密技术

一个公钥,一个私要

典型RsA

加密和解密分开,公钥加密,私钥解密。

加密和解密秘钥不是同一个

比如自己的服务,有自己的公钥和私钥

支付宝有它的公钥和私钥

双方交换对方的公钥,私钥不会交换,都自己保存。

自己服务拥有了支付宝的公钥

支付宝有了自己服务的公钥

自己服务使用对方的公钥进行加密,有加密字符串

加密后的字符串传过去,支付宝使用支付宝私钥解密。

支付宝返数据加密也是用自己服务的公钥进行加密,我们用自己的私钥进行解密。

假如中途拦截的话,又没有私钥,所以是无法解密的。

如果有人伪造自己的服务向支付宝发起请求。

解决方案:在自己的服务对自己的私钥进行加签,再使用对方的公钥进行加密。沃日,双层加密。

支付宝就要:利用对方公钥验签,解密成功,是对方发过来的,所谓验签,使用对方公钥进行解密,没报错,是对方发过来的请求。使用自己的私钥对参数进行解密。

就是双层加密,双层解密。

如果有人问你,你的数据在各个服务如何保障安全。

内部调用无所谓,外部请求,在网关进行出去,如果敏感信息就非对称加密算法

外部请求通过https,保障安全

https底层就是对称加密或者非对称加密

客户端 HTTPS的服务器必须要有一套数字证书,花点钱申请,或者自己制作,证书就是公钥

这是比较简单,详细的可以网上搜一搜

证书就是公钥

双方传输证书

客户端解析证书,用公钥加密随机值

传输加密信息

服务端解析加密信息

百度安全验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/32529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式linux系统中LCD屏驱动实现思路分析

在 Linux 下 LCD 的使用更加广泛,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。接下来就来学习一下如何在 Linux 下驱动 LCD 屏幕。 第一:Framebuffer设备简介 先来回顾一下裸机的时候 LCD 驱动是怎么编写的,裸机 LCD 驱动编写流程如下: ①、初始化 I.MX6U 的…

Selenium WebDriver - 网络元素

本文翻译整理自:https://www.selenium.dev/documentation/webdriver/elements/ 文章目录 一、文件上传二、定位策略1、传统定位器2、创建定位器3、类名4、CSS选择器5、id6、NAME7、链接文本8、部分链接文本9、标签名称10、xpath11、相对定位器它是如何工作的可用相对…

three.js 第八节 - gltf加载器、解码器

// ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入hdr加载器(专门加载hdr的) import { RGBELoader } from three/examples/jsm/loaders…

replaceAll的用法总结

replaceAll 的用法总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来详细讲解一下Java中常用的字符串操作方法之一——replaceAll。replaceAll方法…

Ubuntu开机后图像化界面消失只有命令行界面

ubuntu重新安装cpp库时突然黑屏,打开之后,只能手动输入用户名和密码才能登陆,当时最坏的结果就是重新安装系统,但是还是得抢救一下,万幸的是抢救成功了!!! 于是来到第一个博客 参考…

npm全局安装依赖指定存放文件目录

引言 学校机房,每次默认在c盘装完 电脑关机重启都得重新安装,十分麻烦 1-创建依赖安装/缓存目录 2-打开终端输入设置安装目录位置的命令 npm set cache \你创建的缓存文件目录\ npm set prefix \你创建的global全局安装依赖文件目录\至此以后npm -g 依…

自动驾驶仿真Carla -ACC功能测试

我将详细说明如何使用Carla进行ACC(自适应巡航控制)测试,确保每个步骤贴合实际的Carla自动驾驶仿真标准,并提供相应的代码示例。 使用Carla进行ACC测试的步骤: 1. 环境设置和启动Carla 首先,确保你已经安装…

StudentController

目录 1、 StudentController 1.1、 RegistrationForm 1.1.1、 // Save data to database 1.1.2、 // Generate tracking ID 1.1.3、 // Store tracking ID along with registration details

AI学习指南机器学习篇-朴素贝叶斯模型训练与预测

AI学习指南机器学习篇-朴素贝叶斯模型训练与预测 介绍 在机器学习领域,朴素贝叶斯模型是一种常用的分类算法,其原理简单、实现容易,并且在一些应用场景中取得了不错的效果。本篇博客将详细介绍朴素贝叶斯模型的训练过程和预测过程&#xff…

巴鲁夫MacroBuilder2.0.0.0软件巴鲁夫和使用手侧

巴鲁夫MacroBuilder2.0.0.0软件巴鲁夫和使用手侧

Linux下多进程访问同一个共享库处理流程

两个测试程序实现调用同一个SO库: ​​​​​​​ #include <stdio.h> #include "a/a.h" #include <unistd.h> int main() { int a = 4,b = 5; sum(a, b); int ret = get(); printf("ret=%d\n", ret); sleep(100)…

数据库新技术【分布式数据库】

文章目录 第一章 概述1.1 基本概念1.1.1 分布式数据库1.1.2 数据管理的透明性1.1.3 可靠性1.1.4 分布式数据库与集中式数据库的区别 1.2 体系结构1.3 全局目录1.4 关系代数1.4.1 基操1.4.2 关系表达式1.4.3 查询树 第二章 分布式数据库的设计2.1 设计策略2.2 分布设计的目标2.3…

【Linux】基础IO_2

文章目录 六、基础I/O2. 系统文件I/O磁盘的存储结构 未完待续 六、基础I/O 2. 系统文件I/O 磁盘的存储结构 系统中不是所有对文件都是打开的状态&#xff0c;大部分的文件都是没有被打开的。这些文件一般都被存储在磁盘当中。磁盘通过柱面&#xff0c;扇面&#xff0c;扇区确…

Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

初始化数据 */ private void initData(Bundle savedInstanceState) { if (savedInstanceState ! null) mDatas savedInstanceState.getStringArrayList(“mDatas”); if (mDatas null) { mLoadingDialog new LoadingDialog(); mLoadingDialog.show(getFragmentMana…

Renesas MCU使用定时器之实现1ms定时中断

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 硬件介绍 2 FSP配置项目 2.1 项目参数配置 2.2 配置定时器参数 3 功能实现 3.1 软件架构实现 3.2 实现功能函数 4 测试 概述 本文主要介绍使用Renesas MCU定时器之实现1ms定时中断功能&#xff0c;文中介绍使用FSP配…

深入探索项目中关于Java 8 Stream API使用

目录 1. 数据清洗与预处理2. 统计分析3. 数据转换与导出4. 复杂逻辑处理5. 并行处理 在实际项目中&#xff0c;Java 8的Stream API可以广泛应用于各种数据处理场景&#xff0c;以下是一些具体的应用实例&#xff0c;这些例子不仅展示了Stream API的灵活性&#xff0c;也体现了它…

理解 iOS 开发中的 NS_ENUM 和 NS_OPTIONS

在开发 iOS 应用程序时&#xff0c;理解 NS_ENUM 和 NS_OPTIONS 的使用至关重要&#xff0c;因为它们在定义和管理枚举和选项方面起着重要作用。在本文中&#xff0c;我们将深入探讨 NS_ENUM 和 NS_OPTIONS 之间的区别、使用场景以及如何有效地实现它们。 NS_ENUM NS_ENUM 用…

对兼容各操作系统的Anki选择题模板的更新——提供更方便的笔记修改功能

2021年当我想做一个兼容各操作系统的Anki选择题模板的时候&#xff0c;到处搜索茧中网&#xff0c;根本找不到相关内容&#xff0c;直到偶然在github上看到Simon Lammer的Anki持久化模块&#xff0c;才算真正实现。现在再在茧中网上搜索兼容各种操作系统的Anki选择题模板&#…

Android蓝牙开发(一)之打开蓝牙和设备搜索

private BluetoothManager bluetoothmanger; private​ BluetoothAdapter bluetoothadapter; /** 判断设备是否支持蓝牙 */ bluetoothmanger (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); bluetoothadapter bluetoothmanger.getAdapter(); if (bl…

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell Jenkins弱口令 默认用户一般为jenkins/jenkins 使用admin/admin123登陆成功 Jenkins反弹shell 格式为 println"命令".execute().text 在/tmp目录中生成shell.sh文件&#xff0c;并向其中写入反弹shell的语句 new…