?????, ???? ??? ???! ?? ???? ??? ??? ??? ????? ?? ??? ??? ?? ???? ??????. ? ????? ??? ? ?? ??? ???? ?????. ?? ???? Go? ??? ?? ??? ???? ? ??? ??? ??? ???????!
?? ??: ?? ??
?? ?? ??? ????. ?? ??? ??? ?? ??? ????. ?, ??? ??? ??? ????? ?????. ?? ?? ???? AES(Advanced Encryption Standard)???.
AES: ??? ???
AES? ???? ??? ?? ?? ????. ????? ???? ?? ?????. Go?? ???? ??? ??? ????.
import ( "crypto/aes" "crypto/rand" "fmt" ) func main() { // Let's create a 256-bit key (32 bytes) key := make([]byte, 32) if _, err := rand.Read(key); err != nil { panic("Oops, the universe's randomness machine broke!") } block, err := aes.NewCipher(key) if err != nil { panic("AES threw a tantrum!") } fmt.Printf("Our AES block size: %d bytes\n", block.BlockSize()) }
??? ?? AES? ?????, ?? ?? ??? ?? ?? ???? ????. ?????? ?? ??? ????? ????. ??? ?? ?? ??? ??? ????? ?? ???? ?? ?? ???????.
??? ??: ??? ???? ?
???? ??? ??? ????. ?? ????? ?? ???? XOR? ???? ???? ??? ??? ?? ?? ???? ????. Go? ????? ?? ??? ??? ChaCha20? ?????.
ChaCha20: ? ? ?? ? ? ??
ChaCha20? ???? ??? ??? ????.
import ( "fmt" "golang.org/x/crypto/chacha20" ) func main() { key := make([]byte, chacha20.KeySize) nonce := make([]byte, chacha20.NonceSize) cipher, err := chacha20.NewUnauthenticatedCipher(key, nonce) if err != nil { panic("ChaCha20 isn't feeling chatty today!") } secretMessage := []byte("ChaCha20 is my new dance move!") encrypted := make([]byte, len(secretMessage)) cipher.XORKeyStream(encrypted, secretMessage) fmt.Printf("Our secret dance move, encrypted: %x\n", encrypted) }
ChaCha20? ??? ??? ?, ?? AES ???? ??? ?? ????? ?????.
?? ??: ?? ?? ??? ???
?? ?? ??? ?? ???? ?????. ?? ??? ??? ????. ?? ??? ???? ???? ???? ????? ??? ?????.
GCM(???/??? ??): ??? ?? ?
GCM? ??? ??? ??? ?? ?? ????. ?? ???? ???? ?? ????? ???? ?? ??? ?? ?????. ?? ??? ??? ????.
import ( "crypto/aes" "crypto/cipher" "crypto/rand" "fmt" ) func main() { key := make([]byte, 32) if _, err := rand.Read(key); err != nil { panic("The random number generator went on strike!") } block, err := aes.NewCipher(key) if err != nil { panic("AES is having an existential crisis!") } nonce := make([]byte, 12) if _, err := rand.Read(nonce); err != nil { panic("Nonce generator is feeling noncommittal!") } aesgcm, err := cipher.NewGCM(block) if err != nil { panic("GCM mode is feeling moody!") } secretMessage := []byte("AES-GCM: Making encryption great again!") encrypted := aesgcm.Seal(nil, nonce, secretMessage, nil) fmt.Printf("Our encrypted message: %x\n", encrypted) // Let's decrypt it to make sure it worked decrypted, err := aesgcm.Open(nil, nonce, encrypted, nil) if err != nil { panic("Decryption failed! Did someone tamper with our message?") } fmt.Printf("Decrypted message: %s\n", decrypted) }
CTR(??? ??): Streamifier
CTR ??? ?? ??? ??? ??? ??? ?? ???? ????. ??? ???? ???? ????? ?? ??? ????? ???? ?? ? ?????.
import ( "crypto/aes" "crypto/cipher" "crypto/rand" "fmt" ) func main() { key := make([]byte, 32) if _, err := rand.Read(key); err != nil { panic("Random number generator is feeling random about its job!") } block, err := aes.NewCipher(key) if err != nil { panic("AES is having a block party, and we're not invited!") } iv := make([]byte, aes.BlockSize) if _, err := rand.Read(iv); err != nil { panic("IV generator is feeling too independent!") } stream := cipher.NewCTR(block, iv) secretMessage := []byte("CTR mode: Turning blocks into streams since 1979!") encrypted := make([]byte, len(secretMessage)) stream.XORKeyStream(encrypted, secretMessage) fmt.Printf("Our streamed secret: %x\n", encrypted) // Let's decrypt it decrypted := make([]byte, len(encrypted)) stream = cipher.NewCTR(block, iv) // Reset the stream stream.XORKeyStream(decrypted, encrypted) fmt.Printf("Decrypted message: %s\n", decrypted) }
?? ???? ???
?? ??? ? ??? ??? ???? ???? ? ? ?? ???? ??? ????.
GCM? ??? ?????: ???? ?? AES-GCM? ?????. ?? ???? ???? ????. ??? ???? ?? ?????.
Nonce? ?? ??????: ? ??? ???? ?? ??? nonce(? ? ???? ??)? ?????. ?? ? ?? ???? ?? ???? ????.
???? ?????: crypto/rand? ???? ?? ?????. ??? ?? ???? ?? ?? ??? "password123"? ???? ?? ????.
CTR?? ??? ?????: CTR ??? ???? ?? ???? ???? ???? ?? ?????. ??? ??? ??? ?? MAC? ????? ?? ??????.
?? ??? ?? ??? ????: ?? ? ?? ? ??? ?? ?? ??? ?????. ??? ??? ??? ???? ?? ???? "?? ??" ???? ???? ?? ????.
??? ??? ?????: ??? ?? ??? ?? ?? ???? ???. ?? ? ??? ?? ?? ?? ??? ?? ????. ???? ?? ?? ?? ? ????!
??? ??????
?????! ?? ??? ??? ?? ???? ??????. ??? ??? ??? ?? ?? ??? ? ???? ???? ? ?????.
??? ? ?? ?? ?? ?? ??? ?? ??? ???? ??? ??? ?? ???? ??? ?? ?? ? ???? ??? ????, ?? ???? ?? ???? ???????. ?? ?? ??? ?? ??? ??? ????. ? ? ????? ????? ?? ????.
??? ????? ??? ?? ??? ???? ?? ?????. ??? ?? ?? ?? ?? ??? ?? ??? ?? ????. ??? ??? ??? Go?? ???? ??? ??????? ??? ? ? ??? ? ????.
?? ???? ??? ???? ???? ?? ?? ????? ??? AES-GCM? ???? ??? ?? ?? ?? ?? ????????? ??? ??? ??? ???? ??? ????! ??? ?? ???, ??? ???!
? ??? ?? ???: ???? ?? ??, Go Crypto 4? ?? ?????. ??? ??? 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)

??? ??











GO? ????? ????? ??? ????? ??????. ?? ??? ?? ?????. 1. ? ??? ?? : Linux ????? ?? ??? ?????? ??? ??? ? ????. 2. ?? ??? ??? ?? ???? ???? ?? ??? ????? ?? ??? ?? ?? ??? ?? ??? ? ? ????. 3. ?? ?? ???? ?? : ?? ????? ??? ??? ?? ??? ??? ???? ??????. 4. ??? ?? ??? : ??? ???? ????? ?? ?????? ? ???? ? ? ??? ??? ? ??? ?????. ??? ??? CLI ??, ???? ??? ? ?? ????? ????? ????? ????? ?? ??? ??? ???? ????? ???? ??? ?????.

GO?? ?? ??? ???? MAKE ??? ?? ?? ?? ? ??????. ?? ??? ???? ??? ??? ???? ?? ? ???? ?? ? ?? ??? ???? ?? ? ???? ??? ??? ? ????. ?? ??, ch : = make (Chanint, 10)? ?? 10 ?? ?? ?? ??? ??? ?? ??? ????. ???? ?? ??? ??, ??? ???? ?? ???? ??? ???? ???? ?? ? ??? ??? ????? ?????. ??? ??? ?, ?? : 1. ?? ??? ??? ??? ?? ??? ??? ??? ?? ?????????. 2. ??? ??? ??? ??? ??? ???? ?? ???????. 3. ??? chanstruct {} ??? ?? ?? ? ? ????. ???? ?????? ??? ?, ??? ??? ?? ? ???? ?????.

goensuresmemorysafety? ?? MemolemanucameThrougatomaticgargarbagecollection, nopointerarithmetic, safeconcurrency, andruntimechecks.first, go'sgarbagecollectoricallyally reclaimsunusedmemory, ??, itdisallowspointe, itdisallowspointe ??

GO? ??? ?????? ??????. C? ?? ??? ? ??? ??? ?? ??? ?? ??? ? ??? ???? ?? ?????. 1. ?? ? ???? ?? ???? Go? OS ???? ?? ? ????? ????? ??? ??, ??, ?? ??? ? ???? ?? ?????. OS.ReadFile? ???? ? ?? ??? ?? ??? ?????. ?? ???? ?? ?? ?? ??? ???? ? ?????. 2. ???? ?? ???? OS/EXEC ???? exec.command ??? ?? ??? ????, ??? ????, ?? ??? ????, ?? ? ?? ??? ?????? ?? ??, ??? ?? ? ?? ????? ??? ???? ????? ?? ? ? ????. 3. ???? ? ??? ???? Net ???? TCP/UDP ?????, DNS ?? ? ?? ??? ?????.

GO ???? ?? ??? ????? ?? ???? ????? ?? ? ???? ???? ??? ??? ???? ????????. ?? ???? ??? ?, ???? ? ??? ?? ??? ???? ?? ?? ? ? ????. 1. func (rrectangle) area () int? ?? ? ???? ???? rect.area ()? ?? ?? ??????. 2. ??? ?? ???? ?? func (r*???) setwidth (...)? ?? ??? ???? ???? ???? ?? ??? ???? ?????. 3. ??? ?? ? ?, ?? ??? ??? ?? ? ???, ?? ??? ?? ?? ?? ? ???. 4. Go? Getter/Setter? ??? ???? ??????.

GO?? ?????? ??? ???? ?? ??? ???? ?????. ?????? ??? ???? ???? ??? ??? ???? ?? ??? ?????? ???? ??????. ?? ??, speak () ???? ?? ? ??? ?????? ???? ???? ???? ?? ??? ???? ?? ? ? ????. ?????? ???? ??, ?? ?? ?? ?? ? ????? ?? ????? ???? ? ?????. ?????? ???? ????? ???? ???? ??? ??? ???? ??? ?? ??? ???? ?? ?????? ?????. ???? ?? ???? ??, ??, ?? ?????? ?? ???? ??? ? ?? ???? ?????. ?? ??, ?? ?? ??? ?? ??? ??? ???? ??? Anno? ??? ? ????.

Go Language?? ??? ??? ?? ??? ??? ? ?? ??? ?? ?????. 1.Strings.contains ()? ???? ?? ???? ???? ??? ??? ???? ?? ?? ???? ? ?????. 2.strings.index ()? ???? ?? ???? ???? ??? ?? ? ??? ???? ??? -1? ?????. 3.strings.replaceall ()? ?? ???? ?? ??? ?? ? ? ??? Strings.replace ()? ?? ?? ?? ?? ? ? ????. 4.Len () ??? ???? ??? ??? ?? ? ????? ?? ??? ?? ? ?? ??? ???? ?????? ???????. ??? ??? ?? ??? ???, ??? ?? ?? ? ??? ??? ?? ?????? ?????.

TheGoiopackageprovidesinterfaceslikeReaderandWritertohandleI/Ooperationsuniformlyacrosssources.1.io.Reader'sReadmethodenablesreadingfromvarioussourcessuchasfilesorHTTPresponses.2.io.Writer'sWritemethodfacilitateswritingtodestinationslikestandardoutpu
