美文网首页
非对称加密RSA-秘钥对的生成

非对称加密RSA-秘钥对的生成

作者: 够浪你大哥 | 来源:发表于2019-01-17 22:21 被阅读0次
package main

import (
    "crypto/rand"
    "crypto/rsa"
    "crypto/x509"
    "encoding/pem"
    "fmt"
    "os"
)

func GenerateRsaKeyPair(bits int) error {
    //1.用GenerateKey函数的随机数生成器rando生成一对具有指定紫薇树的RSA秘钥
    //私钥                    生成秘钥       随机数生成器
    privateKey, err := rsa.GenerateKey(rand.Reader, bits)
    if err != nil {
        return err
    }
    fmt.Printf("创建私钥中...\n")

    //2.MarshalPKCSlprivatekeyj将rsa私钥序列化为DER编码
    derTextPri := x509.MarshalPKCS1PrivateKey(privateKey)

    //3.创建一个pem格式的block结构,将der编码的字节写入block
    block :=pem.Block{  //创建一个格式结构
        Type:"RSA Private Key",
        Headers:nil,
        Bytes:derTextPri,
    }
    //创建文件
    file1, err := os.Create("rsaPrivateKey.pem")
    if err != nil {
        return err
    }
    defer file1.Close()

    //4.使用pem的encode方法,将block写入磁盘文件中
    //         编码
    err = pem.Encode(file1, &block)
    if err != nil {
        return err
    }
    fmt.Printf("创建公钥中...\n")

    //创建公钥
    //1.通过私钥或得公钥
    //公钥        以获得的私钥  公钥
    publicKey := privateKey.PublicKey

    //2.MarshalPKCS1PublicKey将rsa私钥许雷华问DER  编码
    derTextPub := x509.MarshalPKCS1PublicKey(&publicKey)//将或得的公钥进行der编码

    //3.创建一个pem格式的block结构,将der编码的字节流写入block
    blockPub := pem.Block{
        Type:"RSA Publick Key",
        Headers:nil,
        Bytes:derTextPub,
    }
    //创建文件
    file2, err := os.Create("rsaPublicKey.pem")
    if err != nil {
        return err
    }
    defer file2.Close()

    //4.使用pem的encode方法,将block写入磁盘文件中
    err = pem.Encode(file2, &blockPub)//把生成好的块写入文件
    if err != nil {
        return err
    }
    return nil
}

func main() {
    err := GenerateRsaKeyPair(2048)
    if err != nil {
        fmt.Printf("创建rsa秘钥对失败:%s\n",err)

    }
    fmt.Printf("创建rsa秘钥对成功!")
}

相关文章

  • 非对称加密RSA-秘钥对的生成

  • 非对称加密和对称加密

    非对称加密(公开秘钥加密) 公开秘钥加密(Public key cryptography),也称为非对称加密,是密...

  • ios开发之证书和签名机制(一)

    非对称加密和摘要 1、非对称加密的特性和用法 1) 非对称加密算法(RSA):非对称加密算法指加密秘钥和解密秘钥是...

  • 用Python生成交易账号

    非对称加密 加密解密使用不同的秘钥,加密的密码无法用来解密,必须成对使用。 通讯双方A/B分别生成自己的公钥/私钥...

  • 非对称加密

    非对称加密简介 加密解密使用不同的秘钥,加密的密码无法用来解密,必须成对使用。 通讯双方A/B分别生成自己的公钥/...

  • RSA加密的数学原理

    RSA非对称加密概述   该加密方式需要两个秘钥:公开的秘钥简称公钥(publickey)和私钥(privatek...

  • RSA公钥、私钥、签名和验签

    1 RSA加密算法介绍 RSA又叫非对称加密算法,这类加密算法有一对秘钥,其中一个用来加密一个用来解密。这一对秘钥...

  • RSA的公钥私钥

    一、公钥私钥 非对称加密使用的是RSA算法,所谓的非对称,指的是,加密时使用的秘钥和解密时使用的秘钥是不一样的。也...

  • 加密算法

    1:非对称加密(RSA) 可逆,算法公开,效率高,适合大型文件(一般对文件用对称加密,对加密用的秘钥用非对称加密)...

  • 密码学基础(三):非对称加密(RSA算法原理)

    什么是RSA加密 加密和解密使用的是两个不同的秘钥,这种算法叫做非对称加密。非对称加密又称为公钥加密,RSA只是公...

网友评论

      本文标题:非对称加密RSA-秘钥对的生成

      本文链接:https://www.haomeiwen.com/subject/viiwdqtx.html