OpenSSL

android -------- RSA加密解密算法

风流意气都作罢 提交于 2020-12-18 01:12:06
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用 RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制 网上写法也有很多种,分享一种参考 import java.math.BigInteger; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.RSAPrivateKeySpec; import java.security.spec.RSAPublicKeySpec; import java.util.HashMap; import javax.crypto.Cipher; public class RSAUtils { /** * 生成公钥和私钥 * @throws

android -------- DES加密解密算法

a 夏天 提交于 2020-12-18 00:55:51
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。 DES加密介绍 DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究, 后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力, 24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DES的JAVA实现 注意:DES加密和解密过程中,密钥长度都必须是8的倍数 网上写法也有很多种,我只是随便弄一种 /** * 使用DES对字符串加密 * * @param str * utf8编码的字符串 * @param key * 密钥(56位,7字节) * */ public static byte [] desEncrypt(String str, String key) throws Exception { if (str == null || key ==

常见content-type对应表

狂风中的少年 提交于 2020-12-17 21:32:48
常使用的几种   种类 文件扩展名 Content-Type(Mime-Type) 2003 Excel .xls application/vnd.ms-excel 2010 Excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 文本文件 .txt text/plain 图片 .png/.jpg/.gif image/* 页面 .htm/.html text/html 视频 .avi/ .mpg/ .mpeg/ .mp4 video/* 音频 .mp3/ .wav/ audio/* PDF .pdf application/pdf Office 文件扩展名 Content-Type(Mime-Type) .doc application/msword .dot application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document .dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template .docm application/vnd.ms-word.document

#2020征文-其它#深鸿会深大小组:手把手教你上架HarmonyOS应用

白昼怎懂夜的黑 提交于 2020-12-17 19:28:26
目录: 前言 1. 申请访问证书管理菜单 2. 生成密钥和证书请求文件 3. 申请证书和Profile 4. 编译构建生成HAP 5. 编译构建生成APP 6. 上架 结语 前言 9月鸿蒙开发者大会,12月16号HarmonyOS2.0手机开发者Beta版发布,相信在那之后将会有越来越多开发者加入鸿蒙开发这个系列中,那么开发的应用如何上架应用市场呢?今天将由深鸿会深大学习小组(Zzt_01-23)手把手教你上架HarmonyOS应用,本次应用源代码选取 HarmonyOS运动手表游戏 。深鸿会深大学习小组是一群热衷于学习鸿蒙相关知识和开发鸿蒙相关应用的开发者们,同时也欢迎与各位感兴趣的读者一起学习HarmonyOS开发,相互交流、共同进步。 正文 上架HarmonyOS应用我将分为以下六个步骤讲解: 1. 申请访问证书管理菜单 2. 生成密钥和证书请求文件 3. 申请证书和Profile 4. 编译构建生成HAP 5. 编译构建生成APP 6. 上架 申请访问证书管理菜单 首先我们得先了解一下应用上架的网址: AppGalleryConnect ,也是在华为开发者联盟中的,以下简称AGC。知道AGC是什么之后,那就开始走上我们的上架之路了。要想上架HarmonyOS应用,必须获得上架HarmonyOS应用的资格,也就是申请访问证书管理菜单,在AGC中展示证书管理和设备管理菜单,点击

为什么 https 比 http 更安全?

假如想象 提交于 2020-12-17 06:52:00
点击关注上方“ 杰哥的IT之旅 ”, 后台回复“ Python自动化 ”获取精心整理的PDF。 作者:站在书脊之上 整理:strongerHuang 来源:https://juejin.im/post/5ebe6870f265da7bce2696b9 一、为什么要有HTTPS 在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。比较安全的方法是将通信内容加密在发送给对方。加密方法有两种,对称加密和非对称加密。 二、对称加密 对称加密指的是加密和解密用同一个密钥。但是在通信之前,客户端和服务端是不会有这样同一把密钥的。需要其中一方将密钥发送给对方。在整个传输过程没有任何验证操作,所以黑客也可以截取到这把密钥从而破译出加密的内容。所以纯对称加密是不安全的。 三、非对称加密 非对称加密指的是加密和解密用不同的密钥。可以是用私钥加密,公钥解密,也可以是用公钥加密,私钥解密。但是会有这种情况。服务端拥有私钥和公钥,将公钥发给客户端。既然客户端可以获得公钥,黑客也可以获得公钥。那么服务端发送给客户端的所有内容黑客也是可以解读的。客户端用公钥加密发送给服务端不受影响,因为黑客手上没有服务器的私钥。所以纯非对称加密也是不安全的。 传输密钥的过程 四、图解传输密钥的过程 HTTPS采用对称加密来加密通信内容,所用的密钥称为A

前后端API交互数据加密——AES与RSA混合加密完整实例

纵然是瞬间 提交于 2020-12-17 06:36:43
  前言   前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门: https://blog.csdn.net/ityouknow/article/details/80603617 ),文中讲到利用RSA来加密传输AES的秘钥,用AES来加密数据,并提供如下思路:   说人话就是前、后端各自生成自己的RSA秘钥对(公钥、私钥),然后交换公钥(后端给前端的是正常的明文公钥,前端给后端的是用后端公钥加密后的密文公钥;PS:其实我觉得直接交换两个明文公钥就行了),后端生成AES的 明文key ,用明文key进行AES加密得到 密文数据 ,用前端的公钥进行RSA加密得到 密文key ,API交互时 并将密文数据与密文key进行传输,前端用自己的私钥进行RAS解密的到明文key,用明文key进行AES解密得到明文数据;前端给后端发送数据时同理,这样一来,传输的数据都是密文,且只有秘钥才能解密   可惜这篇博客只提供了思路,但并没有具体的代码,我们在网上查找一下资料,开始生撸代码,实现一个前后端API交互数据加密——AES与RSA混合加密,并应用到项目中   后端加、解密   从网上查找工具类,再进行改造   先引入Base64工具类 <!-- Base64编码需要 --> < dependency > < groupId > org.apache.directory.studio

[转] Navicat Premium 12激活 亲测好用

懵懂的女人 提交于 2020-12-17 06:35:27
三、Navicat Premium 12激活 蓝奏云下载: Navicat Premium 12注册机 百度网盘: Navicat Premium 12注册机 ,提取密码:8u1k 重要提示:该注册机来源于 DeltaFoX 。一般来说,由于注册机会修改.exe文件或.dll文件,加壳并且没有数字签名,所以杀毒软件会报毒。如需使用本注册机或者下载后找不到文件,需要关闭杀毒软件或将本注册机添加至杀毒软件白名单。自行决定是否使用本注册机。 现在开始激活,每一步都很重要,请确保智商和视力在线。 以管理员身份运行 此注册机: 运行注册机 打开注册机后, 1) Patch 勾选Backup、Host和Navicat v12,然后点击Patch按钮: 默认勾选 找到Navicat Premium 12安装路径下的 navicat.exe ,选中并点击打开: navicat.exe 此时出现如下弹窗,提示navicat.exe- x64 -> Cracked.,提示已破解(别高兴,还没结束): 已破解 2)License, Product and Language 确保License为Enterprise,Products为Premium,Languages为Simplified Chinese(简体中文,其它语言版本请自选); 3)Resale License

AES与RSA混合加密完整实例

社会主义新天地 提交于 2020-12-17 05:19:47
前后端API交互数据加密——AES与RSA混合加密完整实例   前言   前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门: https://blog.csdn.net/ityouknow/article/details/80603617 ),文中讲到利用RSA来加密传输AES的秘钥,用AES来加密数据,并提供如下思路:   说人话就是前、后端各自生成自己的RSA秘钥对(公钥、私钥),然后交换公钥(后端给前端的是正常的明文公钥,前端给后端的是用后端公钥加密后的密文公钥;PS:其实我觉得直接交换两个明文公钥就行了),后端生成AES的明文key,用明文key进行AES加密得到密文数据,用前端的公钥进行RSA加密得到密文key,API交互时并将密文数据与密文key进行传输,前端用自己的私钥进行RAS解密的到明文key,用明文key进行AES解密得到明文数据;前端给后端发送数据时同理,这样一来,传输的数据都是密文,且只有秘钥才能解密   可惜这篇博客只提供了思路,但并没有具体的代码,我们在网上查找一下资料,开始生撸代码,实现一个前后端API交互数据加密——AES与RSA混合加密,并应用到项目中   后端加、解密   从网上查找工具类,再进行改造   先引入Base64工具类 <!-- Base64编码需要 --> <dependency> <groupId>org

LE legacy Pairing过程和后续连接过程简介

 ̄綄美尐妖づ 提交于 2020-12-17 04:51:41
LE legacy Pairing过程和后续连接过程简介 一、 手机与设备为配对时,进行配对过程: 1. 下面6 步是启动配对过程: 2. 下面5 步是启动加密过程: 通过上面5步之后,整个链路就被加密了,之后通过STK对数据加密形成密文数据,用于手机和设备之间交换LTK、IRK、SIGN等密钥信息,具体交换哪些密钥,取决于SMP_Pairing Response中的 Initiator Key Distribution和 Responder Key Distribution选项。 3. 下面6 步是交换LTK 、IRK 等信息的过程: 此信息交换过程中,SMP_Pairing Response中的 Initiator Key Distribution和 Responder Key Distribution选项如下图所示: 总结:通过以上过程之后,整个配对过程就完成了,之后再通讯,就是使用LTK作为密钥对数据进行加解密了。 二、 手机已经与设备配对,直接连接设备的过程: 如果手机已经与设备配对,则连接过程就比较简单了,没有上面的SMP相关的步骤了,只有启动加密过程的5步。大体的思路就是,手机将EDIV和RAND发送给设备,设备使用EDIV和RAND,以及事先存好的种子数据,计算出LTK,而手机端事先已经在配对过程中存储了该LTK,这样,双方都有了该LTK

AES + RSA + Hash 实现 C-S 安全交互

早过忘川 提交于 2020-12-17 04:27:09
概述 AES 由于其执行速度快,易于硬件实现,破解难度大等优势,被广泛用于数据的加密。 既然是对称加密,那如何保证秘钥的安全传输?很容易想到用 RSA 加密秘钥。由于只能用私钥解密,而私钥不需要交互双方都知道也就不用通过网络传输,只要私钥不泄露信息就是安全的。 但如果别人截取到请求后伪造数据也用 RSA 公钥加密这种情况呢?也就是如何保证数据的准确性?这个时候就需要签名校验。 本文基于 AES + RSA + Hash 实现一套完整的足够安全的加解密算法。 <!-- more --> 流程图 实现 Client 端 生成 AES 密钥。 使用生成的 AES 密钥对请求的明文数据进行加密,得到 EncryptData。 使用 Server 端提供的接口获取RSA公钥。 使用获取到的 RSA 公钥对 AES 密钥进行加密,得到 EncryptAesKey。 生成签名(CRC 或 Hash 都可以,简单点可以只对 AES 秘钥按一定的规则转换后 Hash)。 将 EncryptAesKey EncryptData 和 Hash 一起发送给 Server 端。 Server 端 生成 RSA 密钥对,并提供接口给 client 获取 RSA 公钥(或者直接私下明文约定好)。 响应 Client 的 Http 请求,获取到 EncryptAesKey EncryptData 和 Hash。