亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go語(yǔ)言實(shí)現(xiàn)RSA加解密算法詳解

 更新時(shí)間:2023年06月04日 09:33:24   作者:JonLee  
隨著互聯(lián)網(wǎng)的高速發(fā)展,人們對(duì)安全的要求也越來(lái)越高,加解密也變得越來(lái)越重要,本文主要為大家介紹了Go語(yǔ)言中實(shí)現(xiàn)RSA加解密與簽名驗(yàn)證算法,希望對(duì)大家有所幫助

隨著互聯(lián)網(wǎng)的高速發(fā)展,人們對(duì)安全的要求也越來(lái)越高。密碼學(xué)中兩大經(jīng)典算法,一個(gè)是對(duì)稱加解密,另一個(gè)是非對(duì)稱加解密,這里就來(lái)分享一下非對(duì)稱加密算法的代表:RSA加解密。

在Go語(yǔ)言中實(shí)現(xiàn)RSA加解密還是比較簡(jiǎn)單的,網(wǎng)上很多教程都是基于Go原生標(biāo)準(zhǔn)庫(kù)寫的,代碼量較多。這里分享一個(gè)好用的庫(kù):https://github.com/forgoer/openssl 。

安裝

go get https://github.com/forgoer/openssl

秘鑰生成

秘鑰可以生成在文件里,也是生成到Buffer里,只要實(shí)現(xiàn)了io.Writer即可。

import (
    "io/ioutil"
    "os"

    "github.com/forgoer/openssl"
)

func main() {

    // 創(chuàng)建私鑰文件
    priFile, err := os.Create("private.key") // 也可以使用buffer, priBuf := bytes.NewBuffer(nil)
    if err != nil {
        panic(err)
    }
    defer priFile.Close()
    // 生成私鑰到文件
    _ = openssl.RSAGenerateKey(1024, priFile)

    // 創(chuàng)建公鑰文件
    pubFile, err := os.Create("public.key")
    if err != nil {
        panic(err)
    }
    defer priFile.Close()

    // 通過(guò)私鑰生成公鑰到文件
    priByte, _ := ioutil.ReadFile("private.key")
    _ = openssl.RSAGeneratePublicKey(priByte, pubFile)
}

加解密

使用公鑰加密,私鑰解密。

src := []byte("123456")
    pubByte, _ := ioutil.ReadFile("public.key")
    // 公鑰加密
    dst, _ := openssl.RSAEncrypt(src, pubByte)


    priByte, _ := ioutil.ReadFile("private.key")
    // 私鑰解密
    res, _ := openssl.RSADecrypt(dst, priByte)


    fmt.Println(string(res)) // 123456

簽名及驗(yàn)證

使用私鑰簽名,公鑰驗(yàn)證。

// 私鑰簽名
    sign, err := openssl.RSASign([]byte("123456"), priByte, crypto.SHA256)
    if err != nil {
        panic(err)
    }

    // 公鑰驗(yàn)證簽名
    err = openssl.RSAVerify([]byte("123456"), sign, pubByte, crypto.SHA256)
    if err != nil {
        panic(err)
    }

這個(gè)加解密庫(kù):https://github.com/forgoer/openssl,它還支持AES、DES、RSA、sha1Hmac-Sha1、sha256、Hmac-Sha256等常用算法。

到此這篇關(guān)于Go語(yǔ)言實(shí)現(xiàn)RSA加解密算法詳解的文章就介紹到這了,更多相關(guān)Go語(yǔ)言RSA加解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 重學(xué)Go語(yǔ)言之運(yùn)算符與控制結(jié)構(gòu)詳解

    重學(xué)Go語(yǔ)言之運(yùn)算符與控制結(jié)構(gòu)詳解

    對(duì)于任何編程語(yǔ)言來(lái)說(shuō),運(yùn)算符和控制結(jié)構(gòu)都算是最基礎(chǔ)的知識(shí)了,既然是基礎(chǔ),當(dāng)然非常有必要學(xué)習(xí),因此在這篇文章中我們就來(lái)討論一下
    2023-02-02
  • Golang中日志使用詳解

    Golang中日志使用詳解

    這篇文章記錄了Golang項(xiàng)目中日志使用,以及結(jié)合Gin框架記錄請(qǐng)求日志,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • 詳解Golang中string的實(shí)現(xiàn)原理與高效使用

    詳解Golang中string的實(shí)現(xiàn)原理與高效使用

    在Go語(yǔ)言中,無(wú)論是字符串常量、字符串變量還是代碼中出現(xiàn)的字符串字面量,它們的類型都被統(tǒng)一設(shè)置為string,下面就跟隨小編一起來(lái)了解一下Golang中string的實(shí)現(xiàn)原理與高效使用吧
    2024-01-01
  • Go語(yǔ)言斷言和類型查詢的實(shí)現(xiàn)

    Go語(yǔ)言斷言和類型查詢的實(shí)現(xiàn)

    Go語(yǔ)言變量類型包含基礎(chǔ)類型和復(fù)合類型,類型斷言一般是對(duì)基礎(chǔ)類型的處理,本文主要介紹了Go語(yǔ)言斷言和類型查詢的實(shí)現(xiàn),感興趣的可以了解一下
    2024-01-01
  • golang進(jìn)行xml文件解析的操作方法

    golang進(jìn)行xml文件解析的操作方法

    本文介紹了Go語(yǔ)言中解析XML文件的幾種方法:小文件解析、大文件流式解析和復(fù)雜結(jié)構(gòu)解析,對(duì)于小文件,使用標(biāo)準(zhǔn)庫(kù)中的encoding/xml包;對(duì)于大文件,采用流式解析以避免內(nèi)存溢出,對(duì)于復(fù)雜結(jié)構(gòu)的XML文件,推薦使用第三方庫(kù)github.com/beevik/etree
    2024-11-11
  • Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析

    Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析

    這篇文章主要為大家介紹了Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 重學(xué)Go語(yǔ)言之基礎(chǔ)數(shù)據(jù)類型詳解

    重學(xué)Go語(yǔ)言之基礎(chǔ)數(shù)據(jù)類型詳解

    Go語(yǔ)言有非常強(qiáng)大的數(shù)據(jù)類型系統(tǒng),其支持的數(shù)據(jù)類型大體上可分為四類:基礎(chǔ)數(shù)據(jù)類型、引用數(shù)據(jù)類型、接口類型、復(fù)合類型。本文就來(lái)講講它們各自的用法吧
    2023-02-02
  • Go語(yǔ)言題解LeetCode455分發(fā)餅干示例詳解

    Go語(yǔ)言題解LeetCode455分發(fā)餅干示例詳解

    這篇文章主要為大家介紹了Go語(yǔ)言題解LeetCode455分發(fā)餅干示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 使用go net實(shí)現(xiàn)簡(jiǎn)單的redis通信協(xié)議

    使用go net實(shí)現(xiàn)簡(jiǎn)單的redis通信協(xié)議

    本文主要介紹了go net實(shí)現(xiàn)簡(jiǎn)單的redis通信協(xié)議,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 一文帶你深入了解Go語(yǔ)言中的事務(wù)

    一文帶你深入了解Go語(yǔ)言中的事務(wù)

    事務(wù)中止時(shí),你結(jié)束事務(wù)了嗎?在開(kāi)發(fā)時(shí)有可能就會(huì)犯這樣的錯(cuò)誤,其問(wèn)題就是你在提交事務(wù)時(shí),如果中間有其他業(yè)務(wù)就取消操作,那么事務(wù)也關(guān)閉了嗎?本文就來(lái)詳細(xì)講講
    2023-04-04

最新評(píng)論