ITKeyword,专注技术干货聚合推荐

注册 | 登录

golang RSA加密解密程序

su_sai 分享于 2016-04-20

推荐:RSA加密解密

和后台弄人脸识别这一块时真是欲仙欲死。NND,一直想记录一下,以免以后再掉坑里,拖了个把月才写,真是拖延症加懒癌晚期。网上找的找了很久只有加密,没解密,

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1054

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" "io/ioutil" "log" "os" "time" ) func main() { var bits int bits = 2048 if err := GenRsaKey(bits); err != nil { log.Fatal("密钥文件生成失败!") } log.Println("密钥文件生成成功!") initData := "abcdefghijklmnopq" init := []byte(initData) data, err := RsaEncrypt(init) if err != nil { panic(err) } pre := time.Now() origData, err := RsaDecrypt(data) if err != nil { panic(err) } now := time.Now() fmt.Println(now.Sub(pre)) fmt.Println(string(origData)) for { } } var decrypted string var privateKey, publicKey []byte func init() { var err error // flag.StringVar(&decrypted, "d", "", "加密过的数据") // flag.Parse() publicKey, err = ioutil.ReadFile("public.pem") if err != nil { os.Exit(-1) } privateKey, err = ioutil.ReadFile("private.pem") if err != nil { os.Exit(-1) } } func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) bloc

推荐:RSA 加密解密总结

http://blog.csdn.net/ydmdzq_helloworld/article/details/6699328 参考以上文章实现。 1.GenerateRSAKey(1024, priKey, pubKey, seed);

函数调用后会生成pri,

k := &pem.Block{ Type:

"私钥", Bytes: derStream, } file, err := os.Create("private.pem") if err != nil { return err } err = pem.Encode(file, block) if err != nil { return err } // 生成公钥文件 publicKey := &privateKey.PublicKey derPkix, err := x509.MarshalPKIXPublicKey(publicKey) if err != nil { return err } block = &pem.Block{ Type:

"公钥", Bytes: derPkix, } file, err = os.Create("public.pem") if err != nil { return err } err = pem.Encode(file, block) if err != nil { return err } return nil } // 加密 func RsaEncrypt(origData []byte) ([]byte, error) { block, _ := pem.Decode(publicKey) if block == nil { return nil, errors.New("public key error") } pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) if err != nil { return nil, err } pub := pubInterface.(*rsa.PublicKey) return rsa.EncryptPKCS1v15(rand.Reader, pub, origData) } // 解密 func RsaDecrypt(ciphertext []byte) ([]byte, error) { block, _ := pem.Decode(privateKey) if block == nil { return nil, errors.New("private key error!") } priv, err := x509.ParsePKCS1PrivateKey(block.Bytes) if err != nil { return nil, err } return rsa.DecryptPKCS1v15(rand.Reader, priv, ciphertext) }

推荐:RSA加密、解密

using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace Lib.Encryption { ///

package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" "io/ioutil" "log" "os" "time" ) func main() { var bits int bits = 2048 if err := GenRsa

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。