Golang의 XOR 복호화: 이해하셨나요?
소개:
Golang 프로그래밍 언어에는 XOR 기호(^)를 사용하여 간단한 암호화 및 복호화 작업을 수행하는 일반적으로 사용되는 암호화 및 복호화 기술이 있습니다. 이 기술은 일부 간단한 암호화 요구 사항 시나리오에서 큰 역할을 할 수 있으며 XOR 작업의 원리와 응용 프로그램을 더 깊이 이해하는 데도 도움이 될 수 있습니다. 이 기사에서는 Golang의 XOR 복호화를 소개하고 특정 코드 예제를 통해 이를 보여줍니다.
1. XOR 연산의 원리
배타적 OR 연산(XOR)은 컴퓨터에서 일반적인 비트 연산입니다.
XOR 연산의 중요한 특징은 동일한 피연산자에 대해 두 개의 연속 XOR 연산을 수행하면 결과가 피연산자 자체와 동일하다는 것입니다.
2. Golang의 XOR 복호화 예
다음은 XOR을 사용하여 간단한 암호화 및 복호화 작업을 수행하는 방법을 보여주는 샘플 코드입니다.
package main import ( "fmt" ) func encrypt(plaintext string, key rune) string { ciphertext := make([]byte, len(plaintext)) for i, c := range plaintext { ciphertext[i] = byte(c) ^ byte(key) } return string(ciphertext) } func decrypt(ciphertext string, key rune) string { plaintext := make([]byte, len(ciphertext)) for i, c := range ciphertext { plaintext[i] = byte(c) ^ byte(key) } return string(plaintext) } func main() { plaintext := "Hello, XOR!" key := 'K' // 使用单个字符作为加密/解密的密钥 // 加密 ciphertext := encrypt(plaintext, key) fmt.Println("加密后的结果:", ciphertext) // 解密 decryptedText := decrypt(ciphertext, key) fmt.Println("解密后的结果:", decryptedText) }
위 코드에서는 encrypt
함수가 사용되었습니다. 일반 텍스트를 암호화하고 일반 텍스트 문자열과 키(룬 유형으로 표시됨)라는 두 가지 매개변수를 허용합니다. encrypt
함수 내에서 XOR 기호 ^를 사용하여 각 문자를 암호화하고 암호화된 문자를 ciphertext
슬라이스에 저장한 후 마지막으로 변환을 통해 암호화 결과를 반환합니다. encrypt
函数用于加密明文,接受两个参数:明文字符串和密钥(以rune类型表示)。在encrypt
函数内部,使用异或符^对每个字符进行加密操作,将加密后的字符保存在ciphertext
切片中,并最终通过转换返回加密结果。
decrypt
函数用于解密密文,与encrypt
函数类似,同样接受两个参数:密文字符串和密钥。在decrypt
函数内部,使用异或符^对每个字符进行解密操作,将解密后的字符保存在plaintext
切片中,并最终通过转换返回解密结果。
在main
函数中,我们定义了一个明文字符串和一个密钥字符。首先调用encrypt
函数对明文进行加密得到密文,并打印出来。接着使用decrypt
decrypt
함수는 암호문을 해독하는 데 사용됩니다. 이는 encrypt
함수와 유사하며 암호문 문자열과 키라는 두 가지 매개변수도 허용합니다. decrypt
함수 내에서 XOR 연산자 ^를 사용하여 각 문자를 해독하고, 해독된 문자를 일반 텍스트
슬라이스에 저장하고, 마지막으로 변환을 통해 해독된 결과를 반환합니다. main
함수에서는 일반 텍스트 문자열과 키 문자를 정의합니다. 먼저 encrypt
함수를 호출하여 일반 텍스트를 암호화하여 암호문을 얻은 후 인쇄합니다. 그런 다음 decrypt
함수를 사용하여 암호문을 해독하여 일반 텍스트를 얻고 이를 인쇄합니다. 위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다. 加密后的结果: "÷ÁªÊÅÁP" 解密后的结果: "Hello, XOR!"
위 내용은 Golang의 XOR 복호화: 익숙하신가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!