加密验签

签名验签与加密解密 签名 / 验签 解决了网路通讯中的完整性、身份认证与抗抵赖性的问题,不能解决保密性问题 签名: 原文m 经Hash运算得到 数字摘要h ,然后再由私钥进行加密,得到 密文s 密文s是客户端生成的,客户端会把s和m一起发给服务端 (由于发送了原文m,所以不能保证保密性) (如果m是在SSL保密通道中传输,则可以解决保密性问题) 【需要注意的是,单纯的签名/验签是可以保密,因为被签名的是经过... 阅读详情

1.加验签

加签:发送消息方,对消息加签名;

验签:接受消息方,验证签名是否正确。

2.为什么加验签

验证消息的完整性,确认发送方身份;

3.原理

3.1公钥加密 

假设一下,我找了1和2这两个数字,将2这个数字保留起来(不告诉你们(私钥)),告诉大家1是我的公钥。

我的一个朋友要给我传文件,不能让别人看,就用1(我告诉朋友1是我的公钥)加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
数字2,就是我的私钥,来解密。这样我就可以保护数据了。

我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

3.2私钥签名
如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?

但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。

 

总结:公钥和私钥是成对的,它们互相解密。

公钥加密,私钥解密。

私钥数字签名,公钥验证。



4.RSA算法

RSA 公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够 抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对 其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。


RSA加密验签是对安全性要求比较高的机构间通信常用的方式,密钥足够长的情况下,当前的计算能力还不足以解密(不过量子计算机...未来谁知道呢!)。然而,我发现还是有人对这种过程一知半解。比如你们的加签算法用的什么?回答RSA......比如有些机构会对生成的密钥对再用Base64进行编码,这样使用的时候就需要对应的解码,这个过程都被封装在工具类里面了,所以大家看代码的时候尽量多进去看看源码。RSA只是一个加密的算法,加签需要先对内容进行HASH然后再加密,比如SHA1WithRSA就是一个常用的RSA加签算法。

       网上很多讲解RSA的文章,本文就不说了,JDK自带了对应的算法。

       RSA加签、加密后的报文为什么是安全的?

       A机构生成A的密钥对,把公钥给到B;同样的,B把自己的公钥给A。这样A在生成加密报文的时候,会用B的公钥加密明文,然后用A的私钥对明文进行加签。OK,此时只有B的私钥才能解密报文,而私钥只有B才有,即使报文被截获,第三方也无法解密。如果A的公钥是公开的(实际上可能也不公开),那么第三方能解析出报文的HASH结果,也只是Hash结果...无法获得明文。B接受到请求后,用自己的私钥解密报文,然后对报文进行验签,如果不一致,那么也不会响应请求,这样的模式,通信过程的安全性就可以得到保障了。具体过程如下图所示:





5.加解密方案

互联网中,在与外界进行通讯的时候,通常需要加密验签,一般加密验签是为了保证数据的完整性、保密性以及不可否认性(身份识别),这里提供一种比较全面的加密方案:

这里假设明文数据为data,那么加密的过程为:

  1. 对data做单向加密(md5),生成签名摘要s=sign(data);
  2. 用发送方的私钥对s加密,加密后s1=SenderPrivateKey(s),SenderPrivateKey:发送方私钥加密函数;
  3. 对data和s1用对称加密生成data2=Encrypt(data,s1,key),其中Encrypt是对称加密函数,key是对称加密密钥;
  4. 对data2和key使用接受方的公钥加密,data3=ReciverPublicKey(data2,key),其中ReciverPublicKey是接收方的公钥加密函数。

data3就是接受方收到的数据,接收方收到数据后需要先做如下验证处理:

  • 接收方先用自己的私钥对接收到的数据进行解密,得到密码和加密的数据;
  • 使用密码对加密数据解密,得到加密的特征码和数据;
  • 用发送方的公钥解密特征码,如果能解密,则说明该数据是由发送方所发;反之则不是,这便实现了身份验证;
  • 最后计算数据的特征码和解密出来的特征码做对比,如果一样,则该数据没有被修改;反之则数据被修改过了。
5.2对称加密算法DES,3DES

6.加验签
签名使用的算法SHA1withRSA,进行数字签名可以防止第三方假冒企业的行为





RSA加密解密+加签验签+生成公私钥对方法(完整版) RSA加密解密(包含生成公私钥对方法) package com.len.util; import sun.misc.BASE64Decoder; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import jav... 阅读详情

相关推荐

01-SRA加密验签说明

一简介 实际工作中经常遇到与第三方进行数据交互的场景,这个时候,处于安全的考虑,通常会对数据进行加密,RSA+BASE64是常见的加密验签的算法组合。所谓RSA就是一种非对称的加密算法,他会生成一组秘钥公钥、私钥 公钥 公钥负责加密和验签的工作。公钥是给对方使用的,对方用我方的公钥 对我方传输到对方的数据 进行验签,我方利用对方的公钥,对我方传输到对方的数据进行加密。 私钥 私钥负责解密和加签工作。私钥是给自己用的,己方利用私钥 对我方传递到对方的数据进行加签,对对方传递到我方的数据进行解密。 一般加签的

SO 668

加密和验签

区分签名与加密的概念

向阳而生 3419

微信小程序 RSA加密 解密 加签 验签

微信小程序 RSA加密 解密 加签 验签 效果演示: Github链接:https://github.com/UFO0001/WX_RSA 简要说明: 1. 将 wx_rsa.js文件copy到自己想放置的目录下,并在需要用到的js文件中引用 如:var RSA = require('../../utils/wx_rsa.js')2. 在对应的触发事件下进行相应的 加密: var input_rsa = this

UFO00001的博客 2万+

浅谈 加签验签 概念

密码学相关概念 加签验签概念 为什么需要加签、验签 加密算法简介 加签验签相关API 加签验签代码实现

tnb_ml的博客 2827

数字签名和验签的理解

在发送请求的时候,附带一个 refresh key ,该值和 token 的失效时长并不保持一致,通常会比 token 拥有更长的有效期。在客户端和服务端的通信过程中,会遇到很多的安全问题,无法确认收到的信息是否是真实有效的,而不是中途被人掉包,这个时候数字签名就可以站出来,他的作用就是用来证明消息在通信的过程中未被掉包,是真实有效的。区别是 Https 中使用的是 CA 来进行签名的核验和公钥的发布,使用的是系统层面写定的 CA 证书,相比于网络环境中公开的天然具有更高的安全性。

ZhiguoXue_IT的博客 3327

国产信创麒麟操作系统 (kylin v10 x86架构) 离线安装nginx步骤(亲测,超详细步骤)、修改nginx配置文件、启动、重启、关闭nginx记录(亲测有效)

国产信创麒麟操作系统 (kylin v10 x86架构) 离线安装nginx步骤(亲测,超详细步骤)、修改nginx配置文件、启动、重启、关闭nginx记录(亲测有效)

qq445829096的博客 2755

简单理解数字签名和验签

数字签名: “数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数字摘要技...

SuperAE86的博客 2428

利用VBA宏实现LightTools仿真数据自动化导出至Excel

本文详细介绍了如何利用VBA宏实现LightTools仿真数据自动化导出至Excel的完整流程。通过调用LTAPI接口,工程师可以自动执行仿真、抓取照度与光强等数值数据、捕获并粘贴仿真图像,从而将重复性工作自动化,显著提升光学设计工作的效率和准确性。

weixin_28314575的博客 497

公钥,私钥和数字签名这样最好理解

一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但

深度Java 14万+

保姆级避坑指南:在Ubuntu 22.04上从零编译Autoware.universe(含ROS2 Humble和CUDA配置)

本文提供了一份详细的Autoware.universe编译指南,涵盖Ubuntu 22.04系统优化、ROS2 Humble安装避坑、CUDA配置及Demo运行技巧。通过分步操作和实战经验,帮助开发者高效完成环境搭建,避免常见错误,提升自动驾驶开发效率。

weixin_30642561的博客 347

090、Sensor上电时序与帧同步的驱动级实现——以索尼IMX766为例的AVDD/DVDD/IOVDD时序调优

摘要: 本文以索尼IMX766传感器为例,深入探讨了传感器上电时序与帧同步的驱动级实现问题。通过分析某车载项目量产中的高温黑屏故障,揭示了AVDD/DVDD/IOVDD时序偏差导致传感器内部状态机异常的根源。文章详细解读了IMX766三路电源的时序约束(如AVDD与DVDD需在1ms内同步至90%),并提供了驱动代码级实现方案,包括电源使能顺序、延时控制及帧同步配置。针对多摄同步场景,强调了曝光时间寄存器写入一致性的重要性。最后结合产线问题定位经验,提出通过示波器抓取电源波形验证时序合规性的方法。全文聚焦硬

zzfmlxs的博客 256

RSA加密,解密,加签及验签

RSA后端加密,解密,加签及验签

m0_72167535的博客 3919

电路中的DGND、GROUND、GROUND_REF的区别,VREF、VCC、VDD、VEE和VSS的区别?

DGND是数字地,是数字电路部分的公共基准端,用于连接数字电路的接地。

XU157303764的博客 2334

关于SM2加密验签的操作

对接银行的统一收单系统,用到SM2加密验签流程:1:统一收单系统对接平台商户需要向CFCA申请复合证书,一个用于商户签名,另外一个用于报文加密 2:平台商户入驻成功后,证书通过商户pc端自助申请和下载 用到的工具包:SADK(SADK(Security Application Development Kit)是CFCA推出的一套支持全...

u010738038的专栏 1万+

MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration)

激光雷达传感器和相机通常在自动驾驶应用中结合使用,因为激光雷达传感器收集三维空间信息,而相机则以二维图像捕捉空间的外观和纹理。您可以融合来自这些传感器的数据来改进物体检测和分类。激光雷达-相机标定可以估算出一个变换矩阵,给出两个传感器之间的相对旋转和平移。在进行激光雷达-相机数据融合时,您可以使用该矩阵。本图说明了激光雷达和相机标定 (LCC) 过程的工作流程,我们使用棋盘格作为标定对象。我们从激光雷达和相机数据中提取棋盘角和平面,然后在它们的坐标系之间建立几何关系,进行标定。

机器人控制与仿真应用 7370

Xilinx高级调试方法--远程调试

本文主要介绍Xilinx的一些高级调试方法,以及如何使用Xilinx的相关IP。

斌赋的博客 3307

jmeter脚本处理加密验签

jmeter脚本处理加密验签

喵酱 5618

STM32 之十三 看门狗(WDG)及低功耗下的处理

  最近在做低功耗项目时,遇到了看门狗不好处理的问题。在 ST 的各系列 MCU 中,看门狗应该算是使用配置起来最简单的一个外设了。我们通常仅需要配置很少的配置项,但是,一旦要配合低功耗模式则配置就比较麻烦了。MCU 中有两只狗,一只叫 Independent watchdog (IWDG);另一只叫 System window watchdog (WWDG)。下面是这两只狗的简单介绍! IWDG   IWDG 基本就等同于我们独立使用的看门狗芯片。最适合那些要求看门狗作为一个完全独立的进程在主应用程序之外

技术干货 7850

RSA 加密 解密 加签 验签

BASE64 编码的字符串 str 进行解码。// 按照key做首字母升序排列。base64转码工具类。

2501_90251053的博客 674

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

使用支付宝SDK进行RSA加签验签以及加密解密

背景 支付宝开元SDK中提供了RSA工具类,可以方便的对数据进行加解密,经测试演示版本sdk支持分段加解密,并且提供了加签与验签的常用方法。并支持RSA与RSA2两种类的签名类型。 Maven 支付宝SDK依赖 注:maven中央库直达连接 https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java <dependen...

程序员小强的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

浅谈对加密,解密,签名,验签的理解

浅谈加密,签名,验签的理解 1 常用的加密算法 对称加密算法:加密和解密使用相同的密钥,典型的有AES\DES\RC5\IDEA(分组加密)\RC4(序列加密); 非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥.于是A用这个公钥加密消息,B收到密文后用自己的...

musi_m的博客 1066

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

md5加密(API验签)

最近项目中涉及到验证码,订单,支付等功能,涉及到安全性的问题,这里是有个加密算法的(了解下最好)下面一一列出~ 这里简单说下api验签的方法 调用参数 1) 系统级参数 这个appKey找后台要 2) 应用级参数 API 调用除了必须包含公共参数外,如果 API 本身有业务级的参数也必须传入,每个 API 的业务级参数,请参考接口说明。 3) 签名sign生成 1.根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝 。 2.生成签名的步骤如下: ①将所有业务请求参数及系统参数,按字母先后顺序排

sslcsq的博客 3240

加密签名和验签的流程

这句话要求掌握密码学如何通过加密保护数据隐私,通过签名和验签确保数据完整性和身份认证,并理解其底层算法(如RSA、AES、SHA)和实现逻辑(密钥管理、哈希处理)。这些技术共同构建了现代信息安全的基础。,防止未经授权的访问。其核心思想是将明文转换为密文,只有持有密钥的实体才能解密。:验签是验证签名是否合法的过程,确保数据未被篡改且来自合法发送方。通过私钥生成签名,确保数据未被篡改且由特定发送方生成。:加密的目的是确保数据的。:签名的目的是验证数据的。

远方雪的专栏 1194

Java接口请求加密验签处理

Java接口请求加密验签处理 最近做了一个接口的加密验签的功能,今天和大家分享一下***注(以下出现的参数字符串都是测试处理,方便大家理清思路,非真实正确的数据)*** 1、参数说明 字段名称:appcode(产品编码)、servercode(业务编码)、redirect(业务跳转地址)、timestamp(时间)、addParas(附属参数)、sign(签名)。 2、sign签名计算规则 采用md5加密方法,参与计算的参数为上述的appcode、servercode、redirectU..

qq984676583的博客 2440
上一篇: 深入浅出JMS(一)--JMS基本概念
下一篇: centos7安装卸载软件
eplusing
博客等级 码龄12年 45粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值