rsa

XML to PEM in Node.js

与世无争的帅哥 提交于 2020-01-09 10:06:43
问题 I'm stuck with the crypto api because I know little about cryptography. I have this XML: <RSAKeyValue> <Modulus>1znidPBIcMcO7K/53tkTSyKqxlG5Mcws8kVtijS4tyEU4W/FEVWYpOtv+Stnb4Vt</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> Signature: rNbdUP-p4pEGfwQSwR6VPvAVZ-sZu-ptgw8SofYYmNTlfUB9iUbb593eCAuT5jsqDTC Original data: <xml>...some big xml...</xml> I want to verify the signature, how do I do that? (I'm using node v0.10.18) 回答1: I'm not really a node.js dev, so this is super hacky.. Here's a

XML to PEM in Node.js

有些话、适合烂在心里 提交于 2020-01-09 10:04:53
问题 I'm stuck with the crypto api because I know little about cryptography. I have this XML: <RSAKeyValue> <Modulus>1znidPBIcMcO7K/53tkTSyKqxlG5Mcws8kVtijS4tyEU4W/FEVWYpOtv+Stnb4Vt</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> Signature: rNbdUP-p4pEGfwQSwR6VPvAVZ-sZu-ptgw8SofYYmNTlfUB9iUbb593eCAuT5jsqDTC Original data: <xml>...some big xml...</xml> I want to verify the signature, how do I do that? (I'm using node v0.10.18) 回答1: I'm not really a node.js dev, so this is super hacky.. Here's a

Linux安全之SSH 密钥创建及密钥登录

旧城冷巷雨未停 提交于 2020-01-09 05:03:11
在我们平时使用Linux系统时候,通常使用的Linux SSH登录方式是用户名加密码的登录方式,今天来探讨另外的一种相对安全的登录方式——密钥登录。 我们知道SSH登录是用的RSA非对称加密的,所以我们在SSH登录的时候就可以使用RSA密钥登录,SSH有专门创建SSH密钥的工具ssh-keygen,下面就来一睹风采。 首先进入Linux系统的用户目录下的.ssh目录下,root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例: 执行ssh-keygen命令创建密钥对,这里加了-b 参数,指定了长度,也可以不加-b参数,直接使用ssh-keygen -t rsa,ssh-keygen命令的参数文章后尾有参数详解。 执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示呢输入密钥的密码的(如下图中红色处,输入两次相同的,即是又一次确认密码),不需要密码直接回车就行。 [root@localhost ~]# ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.

golang实现RSA加密解密

丶灬走出姿态 提交于 2020-01-09 01:04:21
非对称加密示意图: 在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,私钥用于解密。 RSA公钥和私钥生成: package main import ( "crypto/rsa" "crypto/rand" "fmt" "crypto/x509" "encoding/pem" "os" "flag" ) func RSAKeyGen(bits int) error { privatekey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { fmt.Println("私钥文件生成失败") } fmt.Println("私钥为:", privatekey) derStream := x509.MarshalPKCS1PrivateKey(privatekey) block := &pem.Block{ Type:"RSA Private key", Bytes: derStream, } privatefile, err := os.Create("myprivatekey.pem") defer privatefile.Close() err = pem.Encode(privatefile, block) if err != nil { fmt.Println(err

RancherOS install

白昼怎懂夜的黑 提交于 2020-01-08 19:15:46
管理端IP:192.168.3.210 1、管理端生成ssh-key ssh-keygen -t rsa 2、将ssh-key写入cloud-config.yml #cloud-config rancher: network: interfaces: eth0: address: 192.168.3.212/24 gateway: 192.168.3.1 mtu: 1500 dhcp: false ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0rUXXb3mIX1Zt0U6GMGchehCp7nIo75jENxYWgg0hQCQ9+BMOmN1Dtl/UsewNRRO3X4OajJ0M4fU0B8bWXsG1nv9cSESzoozh6AXo0ZxbZtp7Kg3aD41ncF1IW4pa3kAVEmgjxFc3VvYLhnF27zWxEmbqqulbBD7n6ARSJijbW/v0sNVncd14K/B5eYdIZIbzdAWpvbYI5Eug42G+CJlZo4q/Qa9XBeGDQAU+aHIZj+fkj4U8t5DFAI6ApUa5h4P5/ddBTNDj7f/iyXTOgJQrtnITSdd565+11S6ERZSWt88C7

openssl rsa 加解密

淺唱寂寞╮ 提交于 2020-01-08 08:10:00
<h4>1.openssl进行rsa加密解密</h4> 首先介绍下命令台下openssl工具的简单使用: 生成一个密钥: <pre lang="c" escaped="true" line="1">#openssl genrsa -out test.key 1024</pre> 这里-out指定生成文件的。需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。后面的1024是生成密钥的长度。 openssl可以将这个文件中的公钥提取出来: <pre lang="c" escaped="true" line="1">#openssl rsa -in test.key -pubout -out test_pub.key</pre> <ul> <li>-in指定输入文件,</li> <li>-out指定提取生成公钥的文件名。</li> </ul> <strong>至此,我们手上就有了一个公钥,一个私钥(包含公钥)。现在可以将用公钥来加密文件了。</strong> 我在目录中创建一个hello的文本文件,然后利用此前生成的公钥加密文件: <pre lang="c" escaped="true" line="1">#openssl rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello

windows 创建SSH Key

爱⌒轻易说出口 提交于 2020-01-08 06:33:33
1. 安装git,从程序目录打开 "Git Bash" (百度或用这个连接 http://pan.baidu.com/s/1dDJCx9n 下载) 2. 键入命令:ssh-keygen -t rsa -C "email@email.com" //"email@email.com"是github账号 3. 提醒你输入key的名称,输入如id_rsa 4. 在C:\Users\administrator(win10目录)下产生两个文件:id_rsa和id_rsa.pub 5. 把两个密钥文件复制到C:\Users\administrator\.ssh\ 目录下。 6. 打开id_rsa.pub文件(不要记事本,推荐sublime),复制内容,在需要的服务器上(如github.com上到ssh密钥管理页面),添加新公钥,随便取个名字,粘贴内容 来源: https://www.cnblogs.com/8765h/p/5378018.html

使用openssl实现RSA非对称加密

旧巷老猫 提交于 2020-01-08 03:23:28
生成公钥私钥 使用命令生成私钥 openssl genrsa -out rsa_private_key.pem 1024 参数:genrsa 生成密钥 -out 输出到文件 rsa_private_key.pem 文件名 1024 长度 从私钥中提取公钥: openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem shell加解密 vim a.txt ubuntu@ubuntu-vm:~/workspace/encryption$ cat a.txt 123456 使用公钥加密: openssl rsautl -encrypt -in a.txt -inkey rsa_public_key.pem -pubin -out b.txt 参数: rsautl 加解密 -encrypt 加密 -in 从文件输入 a.txt 文件名 -inkey 输入的密钥 rsa_public_key.pem 上一步生成的公钥 -pubin 表名输入是公钥文件 -out输出到文件 b.txt 输出文件名 使用私钥解密: openssl rsautl -decrypt -in b.txt -inkey rsa_private_key.pem -out c.txt 参数: -decrypt 解密 -in 从文件输入 b.txt

RSA加密原理与秘钥、公钥生成

余生颓废 提交于 2020-01-08 01:46:01
RSA加密(非对称加密) RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。(不可逆向运算的加密方法) 它通常是先生成一对RSA 密钥,其中之一是保密密钥(私钥),由用户保存;另一个为公开密钥(公钥),可对外公开,甚至可在 网络服务器 中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。 RSA进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量 数据加密 。RSA的速度比对应同样安全级别的对称 密码算法 要慢1000倍左右。 PHP端(操作方法): 生成证书前先检查 /etc/pki/CA 是否有 index.txt 和 serial 文件 以下是创建的方法 touch index.txt 排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空 touch serial echo 01 > serial 用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01 在linux下创建一个文件夹MyCA 在MyCA下创建两个文件夹用来保存 certs 用来保存我们的CA颁发的所有的证书的副本 private用来保存CA证书的私钥匙 mkdir

网络安全RSA加密

折月煮酒 提交于 2020-01-08 01:44:54
网络安全课相关知识: RSA 预备知识 1.1 快速幂算法 顾名思义,快速幂就是快速算底数的$n$次幂。其时间复杂度为${\rm{O(log n)}}$,与朴素的$O\left( n \right)$相比,效率有了极大的提高。具体可以参考百度百科:快速幂。 1.2 扩展欧几里得算法 扩展欧几里得算法(英语:Extended Euclidean algorithm)是欧几里得算法(又叫辗转相除法)的扩展。已知整数a、b,扩展欧几里得算法可以在求得a、b的最大公约数的同时,能找到整数x、y(其中一个很可能是负数),使它们满足贝祖等式 ax+by=gcd(a,b). ax+by=gcd(a,b). 如果$a$是负数,可以把问题转化成 $\left| a \right|\left( { - x} \right){\rm{ }} + {\rm{ }}by{\rm{ }} = {\rm{ }}gcd\left( {\left| a \right|,b} \right)$($\left| a \right|$为a的绝对值),然后令$x\prime {\rm{ }} = {\rm{ }}\left( { - x} \right)$。具体可以参考维基百科:扩展欧几里得。 1.3 米勒-拉宾素性检验算法 要测试${\rm{N}}$是否为素数,首先将${\rm{N - 1}}$分解为${2^s}d$