?????, ???? ??? ???! Go? ???? ???? ??? ??? ????? Go? ?? ??? ??? ?? ????? ??? ???? ??? ?????. ?? ?? ?????? ???? ??? ??? ???? ?? ??? ??? ??? ??? ???????(??? ? ??? ? ??? ???? ?? ??????!).
?3? ???? ????
Go? ?3? ???? ?????? ????? ???? ????. ?? ?? ? ??? ??? ???.
1. golang.org/x/crypto: ?? ???
??? Go ???? ???? ?? DLC? ????. ?? ?? ? ???? ???:
- ??? ?? ??? ????(?? ???? ??? ??? ?????? ? ? ??)
- ChaCha20-Poly1305 (?? ???)
- bcrypt ? scrypt? ?? ???? ?? ??(?? ????? ??? ??? ?? ??)
ChaCha20-Poly1305? ??:
import ( "golang.org/x/crypto/chacha20poly1305" "crypto/rand" ) func encryptWithChaCha20Poly1305(key, plaintext, additionalData []byte) ([]byte, error) { aead, err := chacha20poly1305.New(key) if err != nil { return nil, err } nonce := make([]byte, aead.NonceSize()) if _, err := rand.Read(nonce); err != nil { return nil, err } return aead.Seal(nonce, nonce, plaintext, additionalData), nil }
?? ??? ? ? ?? ?? ? ???? ???? ?? ????!
2. github.com/cloudflare/cfssl: PKI? ??? ?? ?
CFSSL? PKI ??? ??? ??? ?? ?? ?? ?? ????. ??? ??? ???? ?? ? ? ?????.
import ( "github.com/cloudflare/cfssl/csr" "github.com/cloudflare/cfssl/initca" ) func generateCA() ([]byte, []byte, error) { req := &csr.CertificateRequest{ CN: "My Awesome Custom CA", KeyRequest: &csr.KeyRequest{ A: "rsa", S: 2048, }, } return initca.New(req) }
??? ??? ?? ??? ? ?? ?? ????!
3. github.com/square/go-jose: JOSE ???
? ?????? JOSE(JSON ?? ?? ? ???)? ?? ?? ?? ?????. JWT ? ???? ?? ???? ? ? ?????.
import ( "github.com/square/go-jose/v3" "github.com/square/go-jose/v3/jwt" ) func createSignedJWT(privateKey interface{}, claims map[string]interface{}) (string, error) { signer, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.RS256, Key: privateKey}, nil) if err != nil { return "", err } return jwt.Signed(signer).Claims(claims).CompactSerialize() }
??? ??? ???? ?? ?? ????!
??? ??? ?? ???
??? ???? ??? ????? ???? ? ?? ????. ??? ??? ??? ??? ???? ????? ?? ????. ???? ???? ??? ???? ????? ??? ? ????!
??? ???(??? ?? ???? ??) XOR ??? ????.
type XORCipher struct { key []byte } func NewXORCipher(key []byte) *XORCipher { return &XORCipher{key: key} } func (c *XORCipher) Encrypt(plaintext []byte) []byte { ciphertext := make([]byte, len(plaintext)) for i := 0; i < len(plaintext); i++ { ciphertext[i] = plaintext[i] ^ c.key[i%len(c.key)] } return ciphertext } func (c *XORCipher) Decrypt(ciphertext []byte) []byte { return c.Encrypt(ciphertext) // XOR is symmetric }
Go? ?? ?????? ? ????? ??? cipher.Block ?????? ??? ? ????.
import "crypto/cipher" type XORBlock struct { key []byte } func NewXORBlock(key []byte) (cipher.Block, error) { return &XORBlock{key: key}, nil } func (b *XORBlock) BlockSize() int { return len(b.key) } func (b *XORBlock) Encrypt(dst, src []byte) { for i := 0; i < len(src); i++ { dst[i] = src[i] ^ b.key[i%len(b.key)] } } func (b *XORBlock) Decrypt(dst, src []byte) { b.Encrypt(dst, src) }
?? Go? ?? ???? ??? ?? ??? ??? ? ????.
block, _ := NewXORBlock([]byte("mysupersecretkey")) mode := cipher.NewCBCEncrypter(block, iv) mode.CryptBlocks(ciphertext, plaintext)
??? ?? ????? ?????. ?? ??????? ?? ???? ???!
Go? ???? ??? ?? ???? ??
??? ?? ?? ???: ???? ?? ?????? ?????. ??? ???? ???? ?? ????? ??? ??? ?? ?????.
???? ???? ?? ??? ?????: ???? ?????? ????? ???????. ???? ??? ??? ? ????!
????? ??: ??? ????? ???? ???(?? ???), ??? ?? ?? ?? ??, ??? ???? ??? ?????. ???? ???? ??? ????.
?? ???? ? ?????: Go? ????? ??? ? ?? ??? ?????? ???? ?????. ?? ??? ?? ? ?????.
????? ?? ??? ?? ?? ????: ???? ?????! ??? ???? ??? ? ??? ???? ?????.
??? ?????: ?? ?? ??? ???? ?? ???? ?? ????? ??? ??? ?? ????? ?????.
??? ?
Go? ???? ??? ???? ?? ???? ??? ? ????. ???? ?? ???? ?? ?? ????! ??? ??? ???? ???? ????? ?? ??? ??? ?? ??????. ?? ??? ????? ???? ???? ????? ????? ?? ??? ??? ?????.
?? ???? ??? ???? ?? ??? ???? ????! ???? ??? ??, ???? ???!
? ??? Go? ???? ??? ??: ?? ????? ? ??? ???, Go Crypto 12? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

golangofferssuperiorperperperperferforperformance, nativeconcurrencyviagoroutines ? lefficientresourceusage, makingitidealforhigh-traffic, 2.python, whileslowerduetointerpretationandghilegil, arrethecoSystem, andisbettersuitedfori/o-ko

Golang? ?? ??? ??? ????? ??? ?? ???? ??? ? ??? ? ?? ????. ?? ??? ???, ?? ?? ? ??? ?? ?????? ????? API ??, ???? ???, ?? ???, ?????? ?? ? CLI ??? ?? ??? ?? ????? ???? ? ?????. Golang? ? ??? ??? ?? ??? ???? Gopherjs? ?? JavaScript? ?????? Tinygo? ?? WebAssembly?? ????? ??? ?? ??? ???? ?? ??? ???? HTML ???? ?? ? ? ????. ??? ???? ??? ?? ??? ??? ??JavaScript/TypeScript ? ???? ???????. ??? Golang? ??? ???? ???? ?? ?? ??? ? ?????.

GO?? GraphQlapi? ????? GQLGEN ?????? ???? ?? ???? ????? ?? ????. 1. ?? ???? ???? ?? ?? ??? ???? GQLGEN? ?? ??? ?????? ??????. 2. ?? ?? GraphQLSchema? ???? POST ?? ? ?? ??? ??? ?? API ?? ? ?? ??? ??????. 3. ?? ?? ????? ????? ?? ??? ???? Resolver?? ???? ??? ?????. 4. ????? ??? Qlhandler? httpserver? ???? ?? ???? ?? API? ???????. ?? ?? ?? ??, ?? ??, ?? ??? ? ?? ??? ???? ???? ?? ??? ?????.

GO? ???? ?? ??? ??? ???? ?? ??? ???? ??? ???? ????. 1. ?? ???? ?? ???? ??????? ?? ? ???? ??????. Windows? .msi ??? ???? MacOS? .pkg ??? ???? Linux? .tar.gz ??? ???? /usr /local ????? ??? ????. 2. Linux/MacOS?? ?? ??, ?? ~/.bashrc ?? ~/.zshrc? ???? ??? Gopath? ???? Windows Set ??? ??? ???? ?????. 3. ?? ??? ???? ??? ???? ??? ???? Hello.Go? ???? ?? ? ??? ???? ??????. ???? ???? ?? ?? ? ??

Golang? ????? ? ???? ?? ? ? Python?? CPU? ???? ? ?????. 1. Golang? Goroutine ??? ????? ????? ?? ?? ?? ??? ??? CPU ???? ????. 2. GO? ?? ??? ????? ??? ?? ?? ??? ???? ??? ??? ???? ????. 3. Python? GIL ? ?? ?? ?????? ?? ?? ?????? ? ? CPU ? ??? ?? ??? ????. 4. Python? ?? ???? ?? ???? ????? ??? ?? ??? ?? ????? ??? ?? ??? ?????.

sync.waitgroup? ?? ? ??? ??? ?? ? ??? ???? ? ?????. ??? ??? ? ?? ??? ?? ?? ??? ???? : ??, ?? ? ??. 1. Aadd (n) ?? ? ?? ? ?? ?????. 2. DONE ()? ? ? ??? ??? ???? ???? 1 ? ?? ???. 3. Wait ()? ?? ??? ?? ? ??? ?? ? ??? ?????. ?? ??? ?? ?? ?? : ADD? ?? ? ???? ????????. ?? ??? ??? DON? ????? ??????. ??? ?? ???? ?? ????. ? ???? ?? ???, ?? ??? ?? ? ?? ?????? ????? ??? ????? ????? ?? ? ? ????.

Go? Embed ???? ???? ? ???? ??? HTML, CSS, ?? ? ?? ??? ???? ? ??? ?? ???? ????? ?? ???? ? ????. 1. ?? ? ???? ????? ??????. 2. ??/*? ?? ?? ????? ??? ? ??? embed.fs? ?? ?? ?? ??? ??? ? ????. 3. ?? ?? ?? ?? ??? ?? ??? ?? ??? ???? ???? ????? ?? ????. 4. ???? ???? ?? ???, ?? ?? ?? ? ?? ?? ?????????. Embed? ???? ??? ??? ????? ???? ??? ??? ? ? ????.

WhenCogingBetwengolangpyThonforCodeReadability ? Mainability, TheDecisionHiSontEamPriorities.1.GolangoffersstrictConsistencyWithminimal, OpinionatedSyntaxandBuilt-Intooling-intoofmt, inficeUniformcodestyleanDearlyErrordetection.2
