- 先に断っておくと本編はあまり、DockerとGCE関係ない。
- 見られたくないファイルをGithubにあげたい場合、Github上では暗号化してCircleCIのビルドのタイミングで複合化したいニーズがあると思う。
- 例えば 証明書をNGINXイメージに埋め込むとか。
- なのでGithubにprするときにはAESアルゴリズムで暗号化すればどうカナ〜と思った。
- せっかくなのでGoで
- 単純で。こうやればおk。パッケージがあるのが素晴らしい。っていうか自力ではじめて暗号化するコード書いたな。
- CBCモード使わないと、出力も入力も16byte固定なんすね。普段意識しないから新鮮だった。やはり自分で実装するのはいい。必ず発見があって面白い <- 一番いいたかったこと
func main() {
//
key := []byte("1234123412341234123412341234123") // Not AES-128, 256, 512(bit)
c, err:= aes.NewCipher(key); if err != nil {
fmt.Println(err.Error()) // Erro発動
}
key = []byte("1234123412341234") // AES-128
c, err = aes.NewCipher(key); if err != nil {
fmt.Println(err.Error())
}
cipherText := make([]byte, aes.BlockSize)
plainText := []byte("1234123412341234")
c.Encrypt(cipherText, plainText) // Input/Output must be 16bits large
fmt.Println(cipherText)
c.Decrypt(plainText, cipherText)
fmt.Println(string(plainText))
}
追記
- よく考えてらIAMのkey management 使えばいいわ