rsa

Securi-Pi:使用树莓派作为安全跳板

吃可爱长大的小学妹 提交于 2020-02-29 14:31:10
近来我发现越来越多的网络环境开始屏蔽对外的常用端口比如 SMTP(端口 25),SSH(端口 22)之类的。当你走进一家咖啡馆然后想 SSH 到你的一台服务器上做点事情的时候发现端口 22 被屏蔽了是一件很烦的事情。 不过,我到目前为止还没发现有什么网络环境会把 HTTPS 给墙了(端口 443)。在稍微配置了一下家中的树莓派 2 之后,我成功地让自己通过接入树莓派的 443 端口充当跳板,从而让我在各种网络环境下都能连上想要的目标端口。简而言之,我把家中的树莓派设置成了一个 OpenVPN 的端点和 SSH 端点,同时也是一个 Apache 服务器,所有这些服务都监听在 443 端口上,以便可以限制我不想暴露的网络服务。 备注 此解决方案能搞定大多数有限制的网络环境,但有些防火墙会对外部流量调用 深度包检查 ,它们时常能屏蔽掉用本篇文章里的方式传输的信息。不过我到目前为止还没在这样的防火墙后测试过。同时,尽管我使用了很多基于密码学的工具(OpenVPN,HTTPS,SSH),我并没有非常严格地审计过这套配置方案(LCTT 译注:作者的意思是指这套方案能帮你绕过端口限制,但不代表你的活动就是完全安全的)。有时候甚至 DNS 服务都会泄露你的信息,很可能在我没有考虑周到的角落里会有遗漏。我强烈不推荐把此跳板配置方案当作是万无一失的隐藏网络流量的办法

【转】rsa加解密的内容超长的问题解决

寵の児 提交于 2020-02-29 12:06:11
一. 现象: 有一段老代码用来加密的,但是在使用key A的时候,抛出了异常:javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes。老代码已经做了分段的加密,应该是已经考虑了加密长度的问题才对。换了另一个线上代码中的key B,正常加密没有异常。 二. 解决: 老代码如下: private static String encryptByPublicKey(String plainText, String publicKey) throws Exception { int MAX_ENCRYPT_BLOCK = 128; byte[] data = plainText.getBytes("utf-8"); Key e = RSASignature.getPublicKey(publicKey); // 对数据加密 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, e); int inputLen = data.length; ByteArrayOutputStream out = new ByteArrayOutputStream(); int offSet = 0; byte[]

OpenSSL 之 RSA 相关命令学习笔记

笑着哭i 提交于 2020-02-29 09:40:25
作者: Angus.Fenying < i.am.x.fenying@gmail.com > 日期: 2016-11-10 10:35 PM 本文介绍 OpenSSL 命令行进行 RSA 加密、解密、签名、验证的操作,但不涉及 RSA 算法原理解析,如有兴趣,可以阅读阮一峰的《RSA算法原理》。如果你只想知道 RSA 是什么,那么你只要记住: RSA 是一种加密算法,使用两个密钥,一个叫公钥,一个 叫私钥,使用公钥加密的密文只有使用私钥才可以解密,反之亦然。 Section 0: 生成随机文件 由于 OpenSSL 创建密钥文件是随机生成的,因此有必要为之提供一份随机数据源。 可以用 openssl 的 rand 命令创建一个 64MB 的随机文件,保存为文件 randSrc.bin 。 openssl rand -out ./randSrc.bin 67108864 还可以使用 -base64 或者 -hex 两个参数之一指定输出格式为 BASE64 或者 HEX。 Section 1: 生成一个密钥文件 小贴士: 根据目前的普遍需求,应当使用 AES256 为加密标准。 通常 RSA 私钥文件命名为 name.pem ,公钥文件名为 name_pub.pem 。 OpenSSL 生成的密钥文件默认是 PEM 格式的。 openssl genrsa \ -rand randSrc

OpenSSL RSA加解密 (.Net公钥加密/ Linux端私钥解密)

与世无争的帅哥 提交于 2020-02-29 09:14:46
要求在.Net端生成公钥私钥对。 然后在.Net端使用RSA公钥加密;在 Linux 端使用RSA私钥解密。 最初的尝试是:.Net端使用RSACryptoServiceProvider; linux 端使用OpenSSL 搞了整整5个小时,有木有啊,有木有啊! .Net的RSA和OpenSSL对不上,有木有啊,有木有啊! 人都搞晕了就是对不上。最后解决方式换成了,.Net端使用 OpenSSL .NET . .Net端代码 string publicKeyFile = context.Server.MapPath( "~/App_Data/public.pem"); using( RSA rsa = RSA.FromPublicKey(BIO.File(publicKeyFile, "r")) ) { buffer = rsa.PublicEncrypt( buffer, RSA.Padding.OAEP); encryptedKey = Convert.ToBase64String(buffer); } Linux端代码 BIO *b64, *bmem; // Base64解码 unsigned char *buffer = (unsigned char *)malloc(length); memset(buffer, 0, length); b64 = BIO_new(BIO

RSA密匙Base64的encodeBase64URLSafeString引起对接问题

[亡魂溺海] 提交于 2020-02-28 14:51:13
一、背景 架构采用 RSA 非对称签名参数,摘要方式 SHA256withRSA ,密匙长度 2024 ,由 Java 端生成公钥私钥,然后提供公钥给 PHP ,公钥编码方式 Base64.encodeBase64URLSafeString . 二、存在问题 描述 在 Java 测试用例跑签名和验签都没问题,但是到了 PHP 爆 key parameter is not a valid public key ,百思不得其解,后来研究了下 encodeBase64URLSafeString 发现编码方式不一样 public static KeyMap generateRSAKey(int keySize) { KeyPair keyPair = SecureUtil.generateKeyPair(AsymmetricAlgorithm.RSA.getValue(), keySize); String privateKey = Base64.encodeBase64URLSafeString(keyPair.getPrivate().getEncoded()); String publicKey = Base64.encodeBase64URLSafeString(keyPair.getPublic().getEncoded()); return new KeyMap()

rsa加密解密, 非对称加密

≯℡__Kan透↙ 提交于 2020-02-28 14:45:58
2016年3月17日 17:21:08 星期四 现在越来越懒了.... 参考: http://www.xuebuyuan.com/1399981.html 左边是加密流程, 右边是解密流程 呃...有一个错别字, "摘" ------2018-3-21 11:17:54 星期三 参考 : 所谓非对称加密,其实很简单,就是加密和解密需要两把钥匙:一把公钥和一把私钥 公钥是公开的,任何人都可以获取。 私钥是保密的,只有拥有者才能使用。 他人使用你的公钥加密信息,然后发送给你,你用私钥解密,取出信息。 反过来,你也可以用私钥加密信息,别人用你的公钥解开,从而证明这个信息确实是你发出的,且未被篡改,这叫做数字签名 参考 : 1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法 来源: https://www.cnblogs.com/iLoveMyD/p/5288255.html

git clone github代码git@github.com: Permission denied (publickey). fatal: Could not read from remote r

好久不见. 提交于 2020-02-27 14:21:31
This is my first time accessing GitHub and I'm not experienced using a console. I am on a MacBook using Bash. When I try to access GitHub, I get this: git clone git@github.com:dhulihan/league-of-legends-data-scraper.git Cloning into 'league-of-legends-data-scraper'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. I've tried following the instructions on Github page about permission being denied. When I use ssh -vT git@github.com , I get the following: OpenSSH_6.2p2, OSSLShim 0.9.8r 8

input too large for RSA cipher with BouncyCastle

懵懂的女人 提交于 2020-02-27 12:33:30
问题 I'm trying to write a service to SFTP to a server on a given interval, download all files in a directory, and then decrypt them for processing. The decrypt method was working at one point, and I have no modified it since. I am still using the same keys as when it did successfully work. I am using the PGPEncrypt, PGPDecrypt, and PGPEncryptionKeys classes for BouncyCastle found here: https://github.com/sledwith/PGP-Decryption-With-C-Sharp Additionally, I have modified the code as shown here:

加密与安全:非对称加密算法 RSA 1024 公钥、秘钥、明文和密文长度

六月ゝ 毕业季﹏ 提交于 2020-02-27 01:51:27
RSA 1024 是指公钥及私钥分别是 1024bit,也就是 1024/8 = 128Bytes。 RSA 原理 RSA 算法密钥长度的选择是安全性和程序性能平衡的结果,密钥长度越长,安全性越好,加密解密所需时间越长。 1、非对称加密算法中 1024bit 密钥的强度相当于对称加密算法 80bit 密钥的强度; 2、密钥长度增长一倍,公钥操作所需时间增加约 4 倍,私钥操作所需时间增加约 8 倍,公私钥生成时间约增长 16 倍; 3、明文长度 一次能加密的明文长度与密钥长度成正比: len_in_byte(raw_data) = len_in_bit(key)/8 -11,如 1024bit 的密钥,一次能加密的内容长度为 1024/8 -11 = 117 byte。 所以非对称加密一般都用于加密对称加密算法的密钥,而不是直接加密内容。 注: 明文长度小于等于密钥长度 128Bytes - 11 这个说法本身不太准确,会让人产生 RSA 1024 只能加密 117 字节长度明文的误解。 实际上,RSA 算法本身要求加密内容也就是明文长度 m 必须满足 0<m<n,也就是说内容这个大整数不能超过 n,否则就出错。 那么如果 m=0 是什么结果? 普遍 RSA 加密器会直接返回全 0 结果,如果 m>n,运算就会出错。 因此,RSA 实际可加密的明文长度最大也是 1024bits

openssl RSA密钥格式PKCS1和PKCS8相互转换

折月煮酒 提交于 2020-02-26 22:38:12
RSA私钥格式PKCS1和PKCS8相互转换 RSA公钥格式PKCS1和PKCS8相互转换 以下转换基于openssl命令的操作; 1. openssl 生成pkcs1格式的私钥,密钥长度1024位, (PKCS1) openssl genrsa -out private.pem 1024 -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDlLm5+Kosybacfp8hzjn1fl2wT7Au2lm5SEtz6r+/wwSfq5KfY H8q1AO/C92IwEpplNbrqYmOXQu6P07mg0lQOCvE5sdtmAvD2ex3wCef8lWmgdh5q Uo4OMcmoSz3IAp/7/FnMag1IelSfdronPBDxazp6NUmQZITsYK6CsEl/ewIDAQAB AoGBAJkMdvF+i9Kzc6YqMC0rfQJ3Zs+vFOtsbmQVAMnQ8JWBCJ1O8d/c60wRQgyb lFCyO7VXOmoIJqX/Jr2aER8bFtG+Yxy6jsMu3ynwMwbhcVmCWCmZoWuE5pZdEJk6 lOdOay7TkE45X/Wc7K9iZs2uuB7sylIvK/HVxxit6FGePa4RAkEA9e+VoAbxBv78 HyxRcStW