亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 SOPS(Secrets OPerationS)和 Go 加密從 JSON 文件導入的值?

如何使用 SOPS(Secrets OPerationS)和 Go 加密從 JSON 文件導入的值?

Go
紫衣仙女 2023-06-19 15:21:01
我有一個 JSON 文件,如下所示。秘密.json:{    "secret": "strongPassword"}我想打印出密鑰“secret”的加密值。到目前為止,我已經嘗試過如下。package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "go.mozilla.org/sops")type secretValue struct {    Value string `json:"secret"`}func main() {    file, _ := ioutil.ReadFile("secret.json")    getSecretValue := secretValue{}    _ = json.Unmarshal([]byte(file), &getSecretValue)    encryptedValue, err := sops.Tree.Encrypt([]byte(getSecretValue.Value), file)    if err != nil {        panic(err)    }    fmt.Println(encryptedValue)}您可能已經猜到了,我是 Go 的新手,上面的代碼不起作用。如何改進代碼以打印出加密值?請注意,我編寫這樣的代碼只是為了了解 SOPS 如何使用 Go 工作。我不會在生產中打印出這樣的秘密值。
查看完整描述

1 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

sops.Tree.Encrypt 讓我們看看(a typo here in your code)的函數聲明。通過代碼,我們應該分這幾步去做。

  1. sops.Tree使用 json 文件構造一個實例。

  2. 使用特定Cipher的加密。

請以這種方式嘗試自己。

下面代碼demo,用AES作為Cipher,sops只能用源碼接口加密total tree。

package main


import (

    "fmt"


    "go.mozilla.org/sops"

    "go.mozilla.org/sops/aes"

    "go.mozilla.org/sops/stores/json"

)


func main() {

    /*

    fileContent := []byte(`{

    "secret": "strongPassword"

    }`)

    */

    fileContent, _ := ioutil.ReadFile("xxx.json")


    encryptKey := []byte("0123456789012345") // length 16


    branches, _ := (&json.Store{}).LoadPlainFile(fileContent)

    tree := sops.Tree{Branches: branches}

    r, err := tree.Encrypt(encryptKey, aes.NewCipher())

    if err != nil {

        panic(err)

    }

    fmt.Println(r)

}


查看完整回答
反對 回復 2023-06-19
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號