OpenSSL

公钥加密 私钥解密

我只是一个虾纸丫 提交于 2021-02-20 12:34:25
什么时候用公钥加密什么时候用私钥加密? 1.公钥加密私钥解密 为了 加解密 2.私钥加密公钥解密 为了 签名 通过私钥对自己的内容进行加密生成数字签名(这个私钥只有我才有),如果被公钥成功解开,能够证明内容是我发出去的(这时公钥用于验证数字签名)。 使用公钥加密,只有我的私钥才能解开,证明发给我的内容不希望被其他人看到(这时公钥用于加密数据)。 所以公钥私钥都可以用来加密解密,只是不同场景用法不同。 上面的场景中,公钥有被篡改替换的可能,无法证明公钥的来源(我不能确定通信的那一方是不是本人),这时候可以引入CA认证,证明公钥是合法的来源。或者通信双方各自持有自己的私钥和对方的公钥,通信的时候先用自己的私钥生成签名,再用对方的公钥对发的内容和签名加密,发送给对方,对方接收到之后用他的私钥解密获得数字签名,然后再用我的公钥验证数字签名,这样保证了数据的安全。 其实数字签名就是利用hash函数生成一个hash码 来源: oschina 链接: https://my.oschina.net/u/232911/blog/2404289

PHP 生成公钥私钥,加密解密,签名验签

拜拜、爱过 提交于 2021-02-20 11:50:11
test_encry.php <? php // 创建私钥,公钥 //create_key(); //要加密内容 $str = "test_str" ; // 加密 $encrypt_str = test_encrypt( $str ); // 解密 $decrypt_str = test_decrypt( $encrypt_str ); // echo $decrypt_str;exit; //签名 $sign_str = sign ( $decrypt_str ); // echo $sign_str;exit; //验签 $res = verify ( $decrypt_str , $sign_str ); var_dump ( $res ); exit (); // 创建秘钥对 function create_key(){ // 配置信息 //配置需要用到环境配置文件 openssl.cnf,这里文件地址如下 $config_path = "D:\ApacheServer\Apache\conf\openssl.cnf" ; $config = array ( "digest_alg" => "sha512", "private_key_bits" => 4096, // 字节数 512 1024 2048 4096 等 ,不能加引号,此处长度与加密的字符串长度有关系

备份Kubernetes的5个最佳实践

左心房为你撑大大i 提交于 2021-02-20 10:47:22
备份应用程序和数据是组织经常需要处理的事情。尽管Kubernetes可以确保应用程序服务的高可用性和可伸缩性,但这些好处并不能有效地保护数据。因此,必须对Kubernetes应用程序进行数据管理和备份,并应将其纳入标准操作流程中。 但是,备份Kubernetes应用程序需要一种独特的方法,该方法与传统的备份解决方案大不相同。使用Kubernetes,经常会将应用程序部署在集群中跨节点的多个容器中,要备份应用程序以及数据和存储量,你需要考虑所有各种Kubernetes对象和配置数据,还必须适应应用程序快速的开发和部署周期,DevOps的“左移(shift-left)”理念,数据保护,安全要求等。 鉴于这些独特的要求,备份Kubernetes似乎是一项艰巨的任务,但是你可以采取一些步骤来简化该过程。以下是五个最佳做法: 1.考虑Kubernetes架构 一个典型的Kubernetes应用程序由数百个组件组成-Pod,服务(service),证书,密钥(secret)等等。任何Kubernetes备份解决方案不仅要能够备份和还原数据,而且还要能够备份和还原所有这些组件。至关重要的是,备份解决方案要通过API自动与Kubernetes控制平面进行交互,以便不仅能够发现集群上运行的Kubernetes应用,而且还可以与基础计算,网络和存储基础架构集成。 存储也是一个重要的考虑因素

23、Python之加密&解密以及加签&验签

笑着哭i 提交于 2021-02-20 08:07:13
一、rsa基本原理 关于加密与加签其目的就是为了保证数据传输的安全性,加签的作用就像签名,告诉别人这个就是我发的数据,别人无法模仿,加密的作用是传输的报文是一串密文,他人无法看懂什么意思,下图描述了使用rsa进行加签,加密,验签,解密的过程。 AB双方生成2对秘钥,A用自己的私钥进行签名(表示是自己发的数据),然后用B的公钥进行加密(这个数据是密文,第三方压根看不懂),B在接收到A发过来的数据时,先用B的私钥进行解密(嘿嘿,只有我能解密),随后用A的公钥进行验签(嗯,就是A发过来的数据),最终使用A传过来的明文进行后续业务处理(上图中B端数据描述不太准确,忽略,懒的画图)。后续通信亦是如此! 二、python中rsa操作 python中使用rsa模块,首先我们要先生成2对秘钥值,在python中使用下面代码生成秘钥值(记得生成2对)。 1 import rsa 2 3 import base64 4 # 生成密钥 5 (pubkey, privkey) = rsa.newkeys(1024 ) 6 # 保存密钥 7 with open( ' public.pem ' , ' w+ ' ) as f: 8 f.write(pubkey.save_pkcs1().decode()) 9 10 with open( ' private.pem ' , ' w+ ' ) as f: 11

nginx + tomcat + https配置

我的梦境 提交于 2021-02-20 08:05:23
nginx + tomcat + https配置 模式: 客户端 ---https -----> nginx ----- http ------> tomcat 浏览器和 Nginx 之间走的 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 走的是普通 HTTP 连接。 证书申请: 在有域名的服务器上部署申请证书的程序: 备注:python 版本在2.6以上 1. #mkdir ~/cert/ wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto 2、mkdir ~/.pip pip.conf配置文件: [global] index-url=https://pypi.doubanio.com/simple/ [install] trusted-host=pypi.doubanio.com 3、安装申请证书所依赖的工具 cd ~/cert #./certbot-auto 安装过程可能需要比较长的时间,有时可能是网络连接不好执行不成功 You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=www.lelaohui.com.cn -----------------------

jumpserver_跳板机实操

孤街醉人 提交于 2021-02-20 05:42:42
首先,jumpserver是什么呢? Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 特点: 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载 jumpserver 3.0 安装 相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机! Centos 6.5 x86_64 关闭 iptables,关闭 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。 一、安装依赖包 yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python

通过gitee管理hexo管理发布内容

风格不统一 提交于 2021-02-19 22:10:06
想法 最原始的办法是通过ftp或者winscp这样的工具能实现内容上传,但是不够简化,首先你要登录服务器,然后找到相应文件夹进行更新。 第二种方法是先更新gitee仓库,然后通过ssh登录服务器,然后从仓库pull下所有代码 第三种方法是不需要gitee仓库,直接在服务器建一个空仓库,然后把本地发布文件push到服务器仓库上 上面3种方法,第1种最原始,第2种比较繁琐,第3种简单可操作,但是第3种有一个问题,就是代码管理全部在服务器上,可视性比较差,能不能通过gitee管理代码,包括原始文件,然后一旦用户push,通过钩子函数,触发服务器主动拉取,这样,所有操作都简化为了本地的一个git push指令。说干就干,问了一圈度娘,果然高手在民间,几个关键步骤都有相应的帖子介绍。 第一步 建立hexo空仓库 本地把项目文件统统push上去,除了node_module文件夹。这样,项目文件也不会丢失,便于以后复用。 第二步 建立服务器到hexo仓库私钥通信 1. 创建ssh连接密钥 参看 https://gitee.com/help/articles/4181#article-header0 none ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public/private rsa key pair... 产生两个文件:id

如何使用SSH远程命令登录香橙派开发板

纵然是瞬间 提交于 2021-02-19 08:17:56
香橙派Orange Pi 系列开发板是开源的单板电脑,新一代的arm开发板,可以运行Android、Ubuntu、Debian等操作系统。CPU使用全志H3系、RK3399等芯片,拥有多种内存规格提供选择。我们可以用它搭建: 一台计算机 一个无线网络服务器 游戏机 音乐播放器 高清视频播放器 扬声器 Android Scratch 更多的各种功能,因为 Orange Pi 开发板 是开源的。 Orange Pi 开发板可以选择连接显示器、串口登录,如果使用Linux 系统,还可以选择SSH远程登录开发板,下面就来介绍下如何使用SSH远程登录香橙派开发板。 工具/原料 香橙派开发板(本文以Orange Pi PC Plus开发板为例) 烧好Ubuntu系统的TF卡(内存8G以上class10级别的正规品牌TF卡) 交叉或直联网线 安装有 ssh 登录软件的笔记本电脑 1、查看 IP 地址 为了远程登录香橙派开发板,首先需要获取开发板的 IP 地址。我们可以通过串口来查看 2、使用 xshell 新建一个 ssh 连接 名称:输入这个 ssh 连接的名字,比如板子的名字 OrangePi 主机:输入板子的 IP 地址 然后按确定就可以了 3、打开刚才新建 ssh 连接 提示是否接受主机的密钥,这里我们选择接受并保存即可 4、然后会提示输入登录的用户名,我们可以输入 root 5

如何使用SSH远程命令登录香橙派开发板

久未见 提交于 2021-02-19 08:17:33
香橙派Orange Pi 系列开发板是开源的单板电脑,新一代的arm开发板,可以运行Android、Ubuntu、Debian等操作系统。CPU使用全志H2、H3、H6、RK3399等芯片,拥有多种内存规格提供选择。 Orange Pi 开发板可以选择连接显示器、串口登录,如果使用Linux 系统,还可以选择SSH远程登录开发板,下面就来介绍下如何使用SSH远程登录香橙派开发板。 1.准备工作 香橙派开发板(本文以Orange Pi PC Plus为例),烧好 ubuntu系统的 TF 卡,电源 网线:交叉或者直联网线 笔记本电脑:需要安装有 ssh 登录的软件,如 Xshell 2.查看 IP 地址 为了远程登录香橙派开发板,首先需要获取开发板的 IP 地址。我们可以通过串口来查看。 3.使用 ssh 远程登录香橙派开发板 3.1使用 xshell 新建一个 ssh 连接 名称:输入这个 ssh 连接的名字,比如板子的名字 OrangePi 主机:输入板子的 IP 地址 然后按确定就可以了 3.2打开刚才新建 ssh 连接 提示是否接受主机的密钥,这里我们选择接受并保存即可 然后会提示输入登录的用户名,我们可以输入 root 确定后会提示我们输入密码,香橙派的默认密码都为 orangepi 如果账号和密码验证通过,就会进入 Ubuntu 系统的命令行界面

Decrypt openssl AES 256 CBC in browser/CryptoJS

浪子不回头ぞ 提交于 2021-02-19 07:36:52
问题 I want to decrypt a string that has been encrypted with openssl on the server like this: openssl enc -e -aes-256-cbc -pbkdf2 -a -S 0123456789ABCDEF -A -k mypassword Note this is done providing only a salt and password, and openssl should handle key and IV automatically. Am I too optimistic that this can happen when the browser decrypts too? If at all possible, I want to do it with only those encryption settings, or the bare minimum of increased complexity. In the browser, I'm trying to