RSA 공개 키 생성
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"flag"
"fmt"
"os"
)
var outFilePath = flag.String("outpath", "./", "Generate rsa file save path")
func main() {
flag.Parse()
if err := genRsaKey(1, *outFilePath); err != nil {
fmt.Println(" !")
} else {
fmt.Println(" !")
}
}
func genRsaKey(bits int, filePath string) error {
//
if bits > 1024 {
bits = 2048
} else {
bits = 1024
}
//
_, err := os.Stat(filePath)
if err != nil {
os.Mkdir(filePath, 0777)
}
//
privateKey, err := rsa.GenerateKey(rand.Reader, bits)
if err != nil {
return err
}
derStream := x509.MarshalPKCS1PrivateKey(privateKey)
block := &pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: derStream,
}
file, err := os.Create(fmt.Sprintf("%s/private.pem", filePath))
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: "PUBLIC KEY",
Bytes: derPkix,
}
file, err = os.Create(fmt.Sprintf("%s/public.pem", filePath))
if err != nil {
return err
}
// fmt.Println(" :", base64.StdEncoding.EncodeToString(block.Bytes))
err = pem.Encode(file, block)
if err != nil {
return err
}
return nil
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
pythonrsa-oaep 암호화 예시 코드코드: 출력: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCk5RDTc88/13NClCz2u8JbERQZ 5+5oqdic9LkqfpHXguxB...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.