OpenSSL

HMAC算法及计算流程介绍

雨燕双飞 提交于 2020-12-11 13:57:54
1.HMAC算法的应用: 目前HMAC算法主要应用在服务器对访问者进行鉴权认证流程中。 2.HMAC算法简介: HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写。HMAC中的H代指Hash散列算法,HMAC可以使用多种单项散列式,例如使用SHA-1,则构成HMAC-1,选用SHA-256散列算法,则构成HMAC-256。 3.计算步骤: 补充说明: (1)如果密钥比单向散列函数分组长度要短,就需要在末尾填充0,直到其长度达到单向散列函数的分组长度为止。 如果密钥比分组长度要长,则要用单向散列函数求出密钥的散列值,然后将这个散列值用作HMAC的密钥。 (2)ipad为00110110的循环,直到达到单项散列函数的分组长度。 opad为01011100的循环,直到达到单项散列函数的分组长度。 综述:有一些用户会将HMAC算法应用到嵌入式版权保护中,即MCU和加密芯片基于HMAC算法完成鉴权认证,也有用户会应用到远程登录认证中,将密钥存储在终端设备的加密芯片中,启动联网后,基于加密芯片完成与后台服务器的身份认证。凌科芯安公司可根据客户需求不同,灵活设置加密芯片中的算法,除了HMAC还可支持3DES、AES、RSA、ECC、国密SM2等各种加解密、签名验签算法,通过安全芯片自身软硬件防护机制

升级OpenSSL

有些话、适合烂在心里 提交于 2020-12-11 12:52:52
CVE-2020-1971: OpenSSL 拒绝服务漏洞修复 背景: 2020年12月8日 openssl 发布了 openssl 拒绝服务漏洞 的风险通告,该漏洞编号为 CVE-2020-1971 ,漏洞等级: 高危 ,漏洞评分: 7.5 。 详细通告:https://www.openssl.org/news/secadv/20201208.txt 查看版本 openssl version 解决方案: 将 OpenSSL 升级到 1.1.1i 升级步骤: 1、下载新版openssl包 wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz 2、解压缩 tar zxf openssl-1.1.1i.tar.gz 3、cd到解压后的目录进行配置 ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared zlib 4、编译和安装 make && make install 5、测试新安装openssl cd /usr/local/openssl/bin && ./openssl version 若此时执行报错: 解决此报错: ln -s /usr/local/openssl/lib/libssl.so. 1.1 /usr

RSA加密、解密、签名、验签的原理及方法

瘦欲@ 提交于 2020-12-11 12:51:55
一、RSA加密简介   RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。    二、RSA加密、签名区别   加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防止信息被泄露,而签名是为了防止信息被篡改。这里举2个例子说明。 第一个场景 :战场上,B要给A传递一条消息,内容为某一指令。 RSA的加密过程如下: (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。 (2)A传递自己的公钥给B,B用A的公钥对消息进行加密。 (3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。   在这个过程中,只有2次传递过程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行解密,防止了消息内容的泄露。 第二个场景: A收到B发的消息后,需要进行回复“收到”。 RSA签名的过程如下: (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留

HMAC算法及计算流程介绍

夙愿已清 提交于 2020-12-11 08:34:33
1.HMAC算法的应用: 目前HMAC算法主要应用在服务器对访问者进行鉴权认证流程中。 2.HMAC算法简介: HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写。HMAC中的H代指Hash散列算法,HMAC可以使用多种单项散列式,例如使用SHA-1,则构成HMAC-1,选用SHA-256散列算法,则构成HMAC-256。 3.计算步骤: 详见下图。 补充说明: (1)如果密钥比单向散列函数分组长度要短,就需要在末尾填充0,直到其长度达到单向散列函数的分组长度为止。 如果密钥比分组长度要长,则要用单向散列函数求出密钥的散列值,然后将这个散列值用作HMAC的密钥。 (2)ipad为00110110的循环,直到达到单项散列函数的分组长度。 opad为01011100的循环,直到达到单项散列函数的分组长度。 综述:有一些用户会将HMAC算法应用到嵌入式版权保护中,即MCU和加密芯片基于HMAC算法完成鉴权认证,也有用户会应用到远程登录认证中,将密钥存储在终端设备的加密芯片中,启动联网后,基于加密芯片完成与后台服务器的身份认证。凌科可根据客户需求不同,灵活设置加密芯片中的算法,除了HMAC还可支持3DES、AES、RSA、ECC、国密SM2等各种加解密、签名验签算法,通过安全芯片自身软硬件防护机制

JVM中8种垃圾收集器小结

和自甴很熟 提交于 2020-12-10 19:24:20
JDK 发展历史 JAVA 1.0,代号Oak橡树) 于 1996-01-23 发行 JAVA 1.1 1997-02-19 发行, 主要更新内容: 引入 JDBC 添加内部类支持 引入 JAVA BEAN 引入 RMI 引入反射 JAVA 1.2, 代号 Playground(操场) 1998-12-8 发行,主要更新内容: 引入集合框架 对字符串常量做内存映射 引入 JIT(Just In Time)编译器 引入打包文件数字签名 引入控制授权访问系统资源策略工具 引入 JFC(Java Foundation Classes),包括 Swing1.0,拖放和 Java2D 类库 引入 Java 插件 JDBC 中引入可滚动结果集,BLOB,CLOB, 批量更新和用户自定义类型 Applet 中添加声音支持 JAVA1.3,代号 Kestrel(红隼) 2000-5-8 发布,主要更新内容: 引入 Java Sound API 引入 jar 文件索引 对 Java 各方面多了大量优化和增强 Java Platform Debugger Architecture 用于 Java 调式的平台。 JAVA 1.4,代号 Merlin(隼) 2004-2-6 发布(首次在 JCP 下发行),主要更新内容: 添加 XML 处理 添加 Java 打印服务(Java Print Service

nginx安装及升级

久未见 提交于 2020-12-10 06:31:48
一、nginx初始安装 1)首先确保机器安装了gcc g++ 查看是否安装gcc g++ which gcc g++ gcc -v g++ -v 没有可执行:yum -y install gcc gcc-c++ 或 yum groupinstall "Development Tools" 手动安装依次下载安装软件包的安装顺序是m4 --> gmp --> mpfr --> mpc --> gcc 2)下载最新的nginx及依赖包pcre、zlib、openssl放到/usr/local/src下。 注意pcre,openssl不要太新,否则后面的configure及make都可能报错;如pcre2,openssl3目前不支持最新的nginx1.18 目前下载包为nginx-1.18.0.tar.gz、openssl-1.0.2p.tar.gz、pcre-8.44.tar.gz、zlib-1.2.11.tar.gz。 pcre(支持rewrite),zlib(支持gzip模块)和openssl(支持ssl模块) 3)命令tar -zxvf 解压以上4个包在/usr/local/src下 进入nginx-1.18.0目录。注意三个依赖包可不make&&make install。 执行./configure --prefix=/usr/local/nginx --with-pcre=..

只有程序员才能读懂的西游记

送分小仙女□ 提交于 2020-12-10 04:13:41
这是一个有关计算机网络协议的故事 一、我佛造经传极乐 话说我佛如来为度化天下苍生,有三藏真经,可劝人为善。 就如图中所示,真经所藏之处,在于云端。佛祖所管辖之下,有四个区域Region,称为四大部洲, 一是东胜神洲,二是南赡部洲,三是西牛贺洲,四是北俱卢洲。 我佛所在西牛贺洲,是主站点。 在每个区域Region,为保证真经永固,设置多个藏经楼,称为可用区(Available Zone)。 每个藏经楼里面是一排一排的柜子,称为机柜,里面有一排一排的格子,称为服务器,经文就摆放在格子中。 在藏经楼中,柜子根据经文分门别类的组织起来,由不同的神仙进行管理,管理一个柜子的经文的神仙,访问这里面经文的钥匙就在他手里,称为接入层神仙(接入层交换机)。 多个接入层神仙被一组汇聚层神仙(汇聚层交换机)管着,多个汇聚层的神仙被一组核心层神仙(核心交换机)管着。 神仙体系组织严格,层次分明,不同的接入层神仙交换经文,要通过汇聚层神仙同意,不同的汇聚层神仙交换经文,需要核心层神仙同意。 经文的看守要万无一失,因而每一层都是分组看护,互相监督,互相备份,称为堆叠。 虽说每个柜子里面放满了经文,为了防止经文被偷听偷看,经文的内容是被仙术封装在一个虚拟的私密空间里面,虽然有人可能会偷到物质的经文,但是没有仙术打开这个私密空间,看到的经文如同空白的一样。这个虚拟的私密空间称为VPC。 要解读经文

3des加解密(+MD5) c++实现(附源码)

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-09 18:33:31
VC++开发常用功能一系列文章 (欢迎订阅,持续更新...) 源代码demo已上传到百度网盘:永久生效 , 文章尾部附 百度链接 3DES,也称为3DESede或TripleDES,是三重数据加密,且可以逆推的一种算法方案。 1975年美国IBM公司成功研究并发布了DES加密算法,但DES密码长度容易被暴力破解,通过对DES算法进行改进,针对每个数据块进行三次DES加密,也就是3DES加密算法。 但由于3DES的算法是公开的,所以算法本身没什么秘密可言,主要依靠唯一密钥来确保数据加密解密的安全。 3DES (又叫Triple DES)是三重数据加密算法(TDEA,T 来源: oschina 链接: https://my.oschina.net/u/4419131/blog/4783380

nginx1.18.0在虚拟机上的搭建

人盡茶涼 提交于 2020-12-09 10:27:15
1、搭建nginx之前先下载安装pcre函数库 pcre 下载地址 https://sourceforge.net/projects/pcre/ 下载最新的8.44版本 2、安装pcre 下载之后rz -be上传到虚拟机,进行解压到根目录下 tar zxvf pcre-8.44.tar.gz -C./ 对当前文件夹授予全部读写权限 chmod 777 -R /root/pcre-8.44, cd 进到pcre-8.44目录下,安装gcc插件 yum -y install gcc yum -y install gcc-c++ 初始化配置并安装 ./configure make&&make install 进入pcretest命令界面 ./pcretest ctrl+c 退出,PCRE安装成功 可查看pcre版本号 pcre-config --version 3、安装nginx nginx下载地址 http://nginx.org/ , 下载稳定版nginx-1.18.0版本,rz -be从本地上传压缩包到虚拟机 解压到根目录下 tar zxvf nginx-1.18.0.tar.gz -C ./ 安装插件 yum install -y zlib-devel 进到nginx-1.18.0目录下并初始化安装配置 cd nginx-1.18.0 需要编译安装 ./configure -

k8s支持的存储卷浅析

白昼怎懂夜的黑 提交于 2020-12-09 08:59:08
Container中的文件在磁盘上是临时存放的,这给 Container中运行的较重要的应用程序带来一些问题: 1,当容器崩溃时文件丢失。kubelet 会重新启动容器。 2,同一 Pod 中运行多个容器的情况下有共享文件需求。 Kubernetes 卷(Volume) 这一抽象概念能够解决这两个问题。本文主要介绍k8s主流的集中卷,本文测试数据来自源Kubernetes 1.18版本。 emptyDir 当 Pod 分派到某个 Node 上时,emptyDir 卷在node上会被创建,并且在 Pod 在该节点上运行期间,卷一直存在。 就像其名称表示的那样,卷最初是空的。 尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,这些容器都可以读写 emptyDir 卷中相同的文件。当 Pod 因为某些原因被从节点上删除时,emptyDir 卷中的数据也会被永久删除。 生命周期 从pod被在node上创建到pod从node中删除 使用场景 应用的临时数据大的时候,存放应用的缓存数据。如果想要提高读写速度,可以在node上使用ssd或者tmpfs来满足需求。 创建一个挂载emptyDir的Pod # cat test.yaml apiVersion: v1 kind: Pod metadata: name: test-pd spec: containers: -