首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go加密算法总结

具体算法主要有DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。 非对称加密(公钥加密):指加密和解密使用不同密钥的加密算法,也称为公私钥加密。...*/ RSA加密算法 公钥和密钥的产生 假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。...这个消息只有用她的公钥才能被解密。乙获得这个消息后可以用甲的公钥解密这个散列值,然后将这个数据与他自己为这个消息计算的散列值相比较。...PublicKey和PrivateKey两个类型分别代表公钥和私钥,关于这两个类型中成员该怎么设置,这涉及到RSA加密算法,本文中,这两个类型的实例通过解析文章开头生成的密钥得到。 2 ....解析密钥得到PublicKey和PrivateKey的实例 这个过程,我也是花了好些时间(主要对各种加密的各种东东不熟):怎么将openssl生成的密钥文件解析到公钥和私钥实例呢?

1.6K40

linux openssl制作ssl证书_openssl生成自签名证书 c++代码

数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也可以由企业级CA系统进行签发。 一般证书分有三类,根证书、服务器证书和客户端证书。...其实这是数学上的一个素数积求因子的原理应用,其结果就是用这一组密钥中的一个来加密数据,用另一个来解密,或许有人已经想到了,没错这就是所谓的公钥和私钥。...公钥和私钥都可以用来加密数据,而他们的区别是,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥加密数据,然后私钥解密的情况被称为加密和解密;私钥加密数据,公钥解密一般被称为签名和验证签名。...位密钥)对产生的私钥加密,这里没有此参数,则只是用了rsa算法加密。...(3)格式转换为cer格式的公钥 openssl x509 -inform pem -in test.crt -outform der -out test.cer #查看cer证书信息 openssl

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenSSL配置HTTPS

    : -new:表示生成一个新证书签署请求 genrsa:生成私钥 rsa:提取公钥 req:生成证书请求 x509:用于签署证书请求文件、生成自签名证书、转换证书格式等等的一个公钥基础设施 首先来了解下非对称加密...φ(n) (互质数复杂性:(p-1)(q-1) ) 随机选择一个 φ(n) 的互质数 e 根据 e 和 φ(n) 找出其中一个模反元素 d (二元一次方程,d众多解) n 和 e 封装成公钥,其余不公开...n 和 d 封装成密钥 安全性在于:知道公钥(n、e)也解不出密钥所需的 d: d 源于模反,所以得知道e 和 φ(n) 才有解,而e在公钥中已知,只需知道 φ(n) 即可 φ(n) = (p-1)(...cer证书只包含公钥信息,提供给客户端使用 CA:认证机构,对证书进行管理 PKI:公钥基础设施,是为了更高效地运用公钥而制定的一系列规范和规格的总称(有PKCS、X509) x509证书:一般会用到三类文件...,key,csr,crt Key:私用密钥,openssl格式,通常是rsa算法 csr:是证书请求文件,用于申请证书。

    1.7K30

    知识分享之Golang——用于在Golang中的加解密工具类,包含MD5、RSA超长字符串、CBC、ECB等算法

    * 4) } //生成RSA私钥和公钥,保存到文件中 func GenerateRSAKey(bits int) { //GenerateKey函数使用随机数据生成器random生成一对具有指定字位数的...= nil { panic(err) } //保存私钥 //通过x509标准将得到的ras私钥序列化为ASN.1 的 DER编码字符串 X509PrivateKey...:= x509.MarshalPKCS1PrivateKey(privateKey) //使用pem格式对x509输出的内容进行编码 //创建文件保存私钥 privateFile...//获取公钥的数据 publicKey := privateKey.PublicKey //X509对公钥编码 X509PublicKey, err := x509.MarshalPKIXPublicKey...= nil { panic(err) } //pem格式编码 //创建用于保存公钥的文件 publicFile, err := os.Create(SysConfigDir

    1K30

    Java中的加密与安全,你了解多少

    PBE(Passwoord Based Encrytion)算法:由用户输入口令,采用随机数杂凑计算出密钥再进行加密,password:用户口令,例如"hello123",Salt:随机生成的byte...我们把a看成是甲的私钥,A看成是甲的公钥,b看成是乙的私钥,B看成是乙的公钥,DH算法的本质就是:双方各自生成自己的私钥和公钥,然后交换公钥,并且根据自己的私钥和对方的公钥生成最终的密钥。...非对称加密算法 非对称加密就是加密和解密使用不同的密钥,非对称加密的典型算法就是RSA算法, 加密:用对方的公钥加密,然后发送给对方 encrypt(publicKeyB,message) -> encrypted...(publicKey,sig,‘message’)),我们可以把数字签名理解为混入了私钥和公钥的摘要。...; public final X509Certificate certificate; // 证书和证书包含的公钥和摘要信息 public X509(KeyStore keyStore

    21110

    写给开发人员的实用密码学 - 数字证书

    如果有人冒充淘宝给了你公钥,对方持有假冒公钥对应的私钥,这种情况下签名、验签都没问题,但你是在和一个假的淘宝通信。...数字证书可以建立公钥与用户之间的对应关系。数字证书实际上是一种特殊的文件格式,包含用户身份信息、用户公钥和CA私钥的数字签名。数字证书中只包含公钥,并不包括私钥,可以公开。...7)subjectPublicKeyInfo 服务器实体申请证书的时候,包含的一个重要属性就是服务器公钥,该公钥对应的算法就是公开密钥算法。...subjectPublicKeyInfo包含两部分信息,分别是公开密钥算法和公钥值,其对应的类型就是SubjectPublicKeyInfo类型: SubjectPublicKeyInfo ::= SEQUENCE...subject表示服务器主体的可分辨名称DN,最重要的是CN属性值,表示证书需要包含的域名,可以包含多个。 subjectPKInfo表示服务器密钥对的公钥,可以是RSA公钥或国密SM2公钥。

    1.3K10

    支付平台架构:终端安全技术实现

    非对称加密(RSA) RSA是一种非对称加密算法,由三位数学家Rivest、Shamir和Adleman设计,其核心思想为将密钥分成以下两把密钥,简称密钥对。...在密钥对中有一个公钥,还有一个私钥。 公钥(Public Key) 是密钥对中完全公开的部分,任何人都可以得到它,适用于客户端-服务端模型。...pkcs8 -in rsa_private_key.pem -out rsa_private_key_pkcs8.pem -nocrypt -topk8 (3)导出私钥对应的X509编码公钥文件: openssl...其中,加密数据的一方使用公开获得的公钥(一般推荐使用1024位密钥,密钥越长越安全,也意味着加密性能越差),对明文数据进行加密得到密文: 1/** 2     * 使用公钥进行加密 3     *...RSA,利用客户端的公钥对摘要值进行加密,将数据通过网络发送给接收方进行验证。

    1K20

    分享几个 Go 语言中使用 RSA 算法对字符串的加密解密的代码片段

    一 生成公钥和私钥 使用随机数据生成器random生成一对具有指定字位数的RSA密钥,生成 RSA 的公钥和私钥,并保存至 key 目录中,入参为加密的位数。...// GenerateRSAKey 函数使用随机数据生成器random生成一对具有指定字位数的RSA密钥,生成 RSA 的公钥和私钥,并保存至 key 目录中,入参为加密的位数。...= nil { panic(err) } //通过x509标准将得到的ras私钥序列化为ASN.1 的 DER编码字符串,使用pem格式对x509输出的内容进行编码。...publicKey := privateKey.PublicKey //X509对公钥编码 X509PublicKey, err := x509.MarshalPKIXPublicKey(&publicKey...并将对应的公钥和私钥存放到相应的目录。

    37310

    实现MSMQ消息加密的安全实践

    使用目标计算机的公钥加密此密钥。 将加密的密钥附加到加密的消息中。 在目标计算机上,消息队列执行下列操作: 使用其私钥(在密钥对中)解密密钥。...使用密钥解密消息正文。 密钥可用于加密和解密两个方面,因此它们被称为是对称的。公钥只能用于加密,而私钥只能用于解密。 由于非对称密钥加密比对称的密钥加密需要更高的开销。...因此采用类似SSL加密机制,使用非对称加密算法加密对成加密使用的密钥,用对称加密算法加密需要发送的消息;解密的时候先使用非对称解密算法解密对称加密时使用的密钥,然后用的得到密钥来解密消息。...= Certificate.PrivateKey as RSACryptoServiceProvider; return RSA.Decrypt(context, false); } 使用证书的公钥加密...("receive message " + bodystring); } 实施步骤 消息接收方步骤 消息接收方申请x509证书 导出公钥给消息发送发送放 消息发送方步骤 消息发送方随机生成对称加密的密钥

    81730

    CA证书介绍与格式转换

    术语介绍 密钥对: 在非对称加密技术中,有两种密钥,分为私钥和公钥。 公钥: 公钥用来给数据加密,用公钥加密的数据只能使用私钥解密,公钥是密钥对持有者公布给他人的。...,得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。...Tips: 密钥指的是私钥或者公钥 —> 密钥 = 私钥/公钥; 密钥对指的是公钥加上私钥 —> 密钥对 = 私钥+公钥; 非对称加密: 公钥和私钥是成对的,公钥和私钥唯一对应,它们互相解密。...认证(加验签): 私钥数字签名,公钥验证签名;加签的目的是让收到消息的一方确认该消息是由特定方发送的。...JKS是二进制格式,同时包含证书和私钥,一般有密码保护,只能存储非对称密钥对(私钥 + x509公钥证书)。

    4.9K21

    Golang:加密解密算法

    Base64不是加密算法 它是一种数据编码方式,虽然是可逆的,但是它的编码方式是公开的,无所谓加密.本文也对Base64编码方式做了简要介绍. 2....,按照相反的顺序进行解密即可恢复明文.加解密中每轮的密钥分别由初始密钥扩展得到.算法中16字节的明文,密文和轮密钥都以一个4x4的矩阵表示....DES算法的安全性很高,目前除了穷举搜索破解外, 尚无更好的的办法来破解.其密钥长度越长,破解难度就越大....RSA 首先使用openssl生成公私钥,使用RSA的时候需要提供公钥和私钥 , 可以通过openss来生成对应的pem格式的公钥和私钥匙 import ( "crypto/rand"...首先使用Base64编码需要一个含有64个字符的表,这个表由大小写字母,数字,+和/组成.采用Base64编码处理数据时,会把每三个字节共24位作为一个处理单元,再分为四组,每组6位,查表后获得相应的字符即编码后的字符串

    1.7K30

    数据安全及各种加密算法对比

    也就是说,当最后剩余两个八位字节(2个byte)时,最后一个6位的Base64字节块有四位是0值,最后附加上两个等号;如果最后剩余一个八位字节(1个byte)时,最后一个6位的base字节块有两位是0值...Hmac消息认证码(对MD5的改进) 原理: 消息的发送者和接收者有一个共享密钥 发送者使用共享密钥对消息加密计算得到MAC值(消息认证码) 消息接收者使用共享密钥对消息加密计算得到MAC值 比较两个MAC...高级加密标准 密码算法可以分为分组密码和流密码两种: 分组密码:每次只能处理特定长度的一zu数据的一类密码算法。...,使用私钥解密 公钥是公开的,私钥保密 加密处理安全,但是性能极差 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥,但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快 经典算法:...中间人攻击详细步骤: 客户端向服务器请求公钥信息 服务端返回给客户端公钥被中间人截获 中间人将截获的公钥存起来 中间人自己伪造一套自己的公钥和私钥 中间人将自己伪造的公钥发送给客户端 客户端将重要信息利用伪造的公钥进行加密

    2.7K30

    浅谈RSA加密算法

    一、什么是非对称加密 1、加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2、密钥分为:公钥,私钥    公钥:可以对外给任何人的加密和解密的密码,是公开的      私钥:通过私钥可以生成公钥...,即非对称加密的公钥和私钥之间存在某一个公式关系 5、常见的非对称加密算法   RSA,DSA 二、什么是RSA算法 RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密...e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n,e1),(n,e2)就是密钥对。...mod n;B=A^e2 mod n; 三、RSA加密算法的使用 1、RSA密钥的生成,返回一个KeyPair对象 KeyPair 用于非对称加密,KeyPair中包含了一个公钥和一个私钥    /...6、公钥与私钥的加载 通常 1、获取密钥对 2、获取公钥、私钥 3、保存公钥、私钥,保存形式基本为字符串形式 那么在以后的使用中就需要获取公钥和私钥来使用 需要知道:   6.1、KeyFactory可以来加载相应的公钥和私钥

    2K50

    openssl原理与操作

    非对称加密算法 对文件或者消息加密时用一个密码,而解锁时需要用另一个密码,即非对称加密,两个密钥分别叫做「公钥」、「私钥」 OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法...密钥包含: 公钥:公钥是公开的,用来传输对方的随机密钥,只有通过私钥才能解密,这时就只有双方知道密钥了,从而达到安全传输的目的。...首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。...证书: 证书就是将我们的公钥和相关信息写入一个文件,CA用它们的私钥对我们的公钥和相关信息进行签名后,将签名信息也写入这个文件后生成的一个文件。...证书格式(是一种标准): x509 这种证书只有公钥,不包含私钥。 pcks#7 这种主要是用于签名或者加密。 pcks#12 这种含有私钥,同时也含有公钥,但是有口令保护。

    1.1K30

    Go: 使用x509.CreateCertificate方法签发带CA的证书

    在Go语言的开发过程中,crypto/x509库是一个强大的工具,它用于处理X.509编码的证书。这个库提供了广泛的功能,其中x509.CreateCertificate函数是最核心的部分之一。...生成CA的密钥对:首先,你需要生成CA的密钥对。这通常涉及到创建一个RSA或者ECDSA的公钥和私钥。...这个过程和创建CA证书类似,不过需要将parent参数设置为CA证书,而template则为你想要创建的证书的模板。 生成证书的密钥对:和之前一样,首先生成公钥和私钥。...使用CA证书和私钥签发新证书:使用x509.CreateCertificate函数、CA的证书、CA的私钥、新证书的公钥来创建新证书。...就是PEM编码的证书 // 可以将它们写入文件或进行其他处理 } 结论 使用crypto/x509库创建CA和由CA签发的证书是一个涉及多个步骤的过程,但通过适当地设置证书模板,并使用正确的父证书和私钥

    49110

    2.密码工具箱(续)

    1.2 伪随机数的实际应用 生成密钥:对称密码和消息认证码; 生成密钥对:公钥密钥和数字签名; 生成nonce:防止重放攻击; 生成salt:盐用于增强基于口令的密码的加密。...上一篇中介绍到了对称密码(比如AES)和公钥密码(比如RSA),公钥密码解决了对称密码的密钥配送问题(其实是绕过了)。...然而这一切都基于一个假设“公钥必须是真正的发送者提供的”,和公钥密钥陷入了同一个问题。...证书除了包含公钥、签名算法和证书的层级结构(比如google这个的顶级颁发机构是GeoTurst Global CA),还有一些证书的序号,版本信息,有效时间等等。....pem :一般是采用PEM编码的base64格式,不含私钥,另外其文件一般采用ASCII编码。 .pfx / .p12 :一般是采用DER编码的二进制格式,包含公钥和私钥的。 4.

    1K100
    领券