公钥加密

python 公钥解密

匿名 (未验证) 提交于 2019-12-02 22:51:30
import base64 from cryptography.hazmat.backends.openssl.backend import backend from cryptography.hazmat.primitives.serialization import load_pem_public_key from config import conf # base64解密 def decode_base64(data): missing_padding = 4 - len(data) % 4 if missing_padding: data += b'=' * missing_padding return base64.urlsafe_b64decode(data) # base64加密 def encode_base64(data): data = base64.urlsafe_b64encode(data) return data # 公钥解密 def openssl_public_decrypt(key, data): length = backend._lib.EVP_PKEY_size(key._evp_pkey) buffer = backend._ffi.new('unsigned char[]', length) backend._lib.RSA_public

openSSL生成公钥和私钥

匿名 (未验证) 提交于 2019-12-02 21:59:42
1. 生成原始 RSA私钥文件 rsa_private_key.pem openssl genrsa -out rsa_private_key.pem 1024 2. 将原始 RSA私钥转换为 pkcs8格式,JAVA需要使用的私钥需要经过 PKCS8 编码 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_java.pem 3. 生成 RSA公钥 rsa_public_key.pem openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem openssl rsa -in rsa_private_key_java.pem -pubout -out rsa_public_key_java.pem 5. 从公钥 rsa_public_key.pem 获取十六进制的公钥(第一段16进制字符串) openssl asn1parse -out temp.ans -i -inform PEM<rsa_private_key.pem openssl asn1parse -out temp_java.ans -i -inform PEM<rsa_private_key

Linux ssh密钥创建及密钥登录

匿名 (未验证) 提交于 2019-12-02 21:56:30
创建密钥 在命令行输入ssh-keygen -t rsa生成密钥 在询问框中一路回车,会在/root/.ssh/ wen件夹下创建公钥id_rsa.pub和私钥id_rsa 拷贝密钥 使用命令拷贝公钥到服务器上ssh-copy-id -i /root/.ssh/id_rsa.pub root@11.22.33.44 ssh-copy-id默认是22端口,如果端口不同,需要收到向/root/.ssh/authorized_keys文件中追加公钥 使用cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys追加公钥,前目录为本地目录,后面目录为服务器目录 chomd 600 /root/.ssh/authorized_keys授权authorized_keys,权限必须是600 使用密钥登录服务器 使用ssh -i /root/.ssh/id_rsa root@11.22.33.44或ssh root@11.22.33.44 -i /root/.ssh/id_rsa登录服务器 如果生成密钥的时候设置了密码,会在使用密钥登录服务器的时候询问密码,输入正确后方可登录 生成密钥时候可选参数 ssh-keygen可用的参数选项有: -a trials 在使用 -T 对 DH-GEX 候选素数进行安全筛选时需要执行的基本测试数量。 -B

SSH实现远程免密登录

可紊 提交于 2019-12-02 20:50:32
1.客户端生成一对秘钥(公钥私钥) $ ssh-keygen -t rsa -C "xxx" 参数说明: -t 加密算法类型,这里是使用rsa算法 如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa。 -C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息,如自己的邮箱或者其他信息都行。 当然,如果不想要这些可以直接输入(一般也是这么做的)下面命令: ssh-keygen 之后会在用户的根目录下的.ssh的文件夹生成私钥id_rsa和公钥id_rsa.pub。本地的.ssh的文件夹存在以下几个文件: id_rsa : 执行命令后生成的私钥文件 id_rsa.pub : 执行命令后生成的公钥文件 know_hosts : 已知的主机公钥清单//ssh命令远程连接不同服务器时可以选择接受到不同的公钥,会将这些主机的公钥都保存在这里。 注意: 执行上面命令后,它要求你输入加密的一些附加参数,不用管,一般默认就好,一直回车即可生成秘钥。 2.拷贝公钥到服务器 $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@xxx.xxx.xxx.xxx user代表Linux用户,xxx.xxx.xxx.xxx代表远程主机地址,下面为例子: $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192

RAS非对称加密

风流意气都作罢 提交于 2019-12-02 19:08:01
加解密密钥不一致,一般私钥不公开,使用公钥加密,私钥解密,使用私钥加密,公钥可以解密。 java代码 import javax.crypto.Cipher; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; public class RSA { //非对称密钥算法 private static final String KEY_ALGORITHM = "RSA"; //密钥长度,在512到65536位之间,建议不要太长,否则速度很慢,生成的加密数据很长 private static final int KEY_SIZE = 512; //字符编码 private static final String CHARSET = "UTF-8"; /** * 生成密钥对 * * @return KeyPair 密钥对 */ public static KeyPair getKeyPair() throws Exception { return getKeyPair(null); } /** * 生成密钥对 * @param password 生成密钥对的密码

ssh问题

纵然是瞬间 提交于 2019-12-02 17:05:12
对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下。 -bash: ssh: command not found 解决办法; yum install -y openssh-server openssh-clinets (0)ssh登录时提示:Read from socket failed: Connection reset by peer. 尝试了很多解决方案均无效,无奈!卸载sshd,然后重新安装 # yum remove openssh* # rm -rf /etc/ssh* # yum install -y openssh* # systemctl start sshd.service (1)ssh远程登陆后的提示信息,标题信息 我们经常会使用中控机ssh信任跳转到其他机器上,但是不知道有没有运维朋友注意到ssh跳转成功后的终端显示的提示信息? 这些提示信息,是为了方便我们在第一时间知道ssh跳转到哪台目标机上,也是为了避免长期频繁跳转后由于大意造成的误入机器操作的风险,我们通常会在ssh跳转到目标机器后显示一些提示信息, 在一些国家, 登入给定系统前, 给出未经授权或者用户监视警告信息, 将会受到法律的保护.如下: [root@bastion

kerberos(转)

自古美人都是妖i 提交于 2019-12-02 15:58:10
前些日子为了搞清楚Kerberos原理,把 MIT的Kerberos经典对话 看了几遍,终于有了一个稍微清晰的认识,这里稍微记录下,因为Kerberos是使用传统加密技术实现的一个认证机制,所以顺便备忘下关于加密的一些知识概念。本文组织如下: ===关于Kerberos=== ===认证授权=== ===加密术语=== ===单点登录=== ===Kerberos术语=== ===Kerberos原理=== ===经典对话手记=== ============================================================== 关于Kerberos 什么是Kerberos? 一句话,Kerberos是一种认证机制。 它的目的:通过密钥系统为客户端/服务器应用程序提供强大的认证服务:保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证; Kerberos协议的整个认证过程实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。 说白了, Kerberos通过 传统的加密技术 (共享密钥)实现了一种可信任的第三方 认证 服务。 认证授权 认证授权(Anthentication and Authorization

https如何保证数据的安全传输

瘦欲@ 提交于 2019-12-02 15:02:17
小黑(黑客)是一个八卦杂志的记者,喜欢偷听别人的秘密,他总想通过秘密发现一些有价值的东西来获取一些利益。有一天,他发现大明星K哥(客户端)经常与模特F姐(服务器)通话,嘻嘻,他突然灵光一闪,嗅到一些八卦的味道,准备进一步“关心关心”。 第一天 小黑在跟踪K哥的时候发现,K哥每天采用http的方式与F姐联系,“你们是真心大还是嫌太黑想要我这个大灯泡来照照,哈哈,我不客气了”,由于http是采用明文直接传输的,所以小黑就如同隐形人一般,每次K哥发消息给F姐,小黑就会在消息到达F姐之前进行拦截,提前获取消息的内容,再帮K哥转发给F姐。同样,F姐发消息的时候,小黑也会进行拦截,获取消息内容再转发给K哥。而K哥、F姐在通信过程种根本不知道有小黑这第三者的存在,依然好不避讳的说着情话。“嘻嘻,有点内容”,小黑邪魅一笑。 第二天 娱乐版头条“大明星K哥与三线模特F姓XXX疑似爆出恋情” K哥和F姐二脸蒙,怎么暴露的??在经纪人李四的询问下,发现了问题“糊涂,糊涂,你们采用http方式,不就明摆着让别人知道这件事嘛”。K哥一脸无辜的询问到“现在要怎么办??”,李四叹了口气,“媒体那边,我来公关,你们就不要采用http通信了,至少你们把通信内容加密一下再传输呀,我之前听过一种对称加密的方式,你们去试试”……李四看了一眼K哥满眼的疑惑就说到“ 所谓的对称加密就是,加密和解密采用同一密钥

linux - Centos7 和 xshell

孤人 提交于 2019-12-02 14:36:31
一、VMware虚拟机使用 1.什么是虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。 2.什么是VMware VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司 VMwareWorkstation可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。 VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。 安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。 为什么使用VMware?

数字证书

巧了我就是萌 提交于 2019-12-02 12:12:45
本节聊的话题是数字证书。先来个预警,没有婚姻的社会里面,没有人能理解结婚证是干什么的,同理,不理解公开密钥加密技术的加密通信和数字签名这两个概念,也不会理解数字证书什么用。这些话题之前,前面小节中咱们都聊过了,不知道你有没有记住呢?好,那么什么是数字证书,发证机构的作用是什么,加密通信和数字签名过程中证书发挥什么作用呢?下面一一揭晓。 一. 什么是数字证书? 先给出一个精确的定义,究竟什么是数字证书呢?数字证书是一个由可信的第三方发出的, 用来证明所有人身份以及所有人拥有这个公钥的电子文件。 拿出一份典型的数字证书,看看里面到底都包含哪几项内容。 首先是发证机构 CA。 第二个是所有人姓名,例如 Peter 。 第三个是所有人公钥,以及公钥的过期时间。 最后一项就是 CA 的数字签名。 好,根据咱们已有的数字签名的知识,可以得出几个结论。 首先,数字签名是 CA 发出的,也就是说 CA 用自己的信用为这个证书做背书。 第二点,证书上同时带有所有人信息和公钥,数字签名保证了证书是不可篡改的,所以说,只要大家信任 CA ,就可以信任所有人和公钥之间的绑定关系。 所以说,数字证书就是第三方机构发行的证书,主要作用就是证明你的公钥的确是属于你的,而公钥其实就是我们在数字世界的身份,所以说数字证书的作用实际上就是证明你是你自己。 二. 数字证书的作用 下面我们详细说说数字证书的作用