Golang을 사용하여 간단한 Caesar 암호 암호화 프로그램을 작성하는 방법

PHPz
풀어 주다: 2023-04-24 10:43:34
원래의
1135명이 탐색했습니다.

Caesar Cipher는 시프트 암호라고도 알려진 간단한 암호화 알고리즘입니다. 그 원리는 암호문을 얻기 위해 평문의 각 문자를 고정된 양만큼 이동시키는 것입니다. 이 기사에서는 Golang을 사용하여 간단한 Caesar 암호 암호화 프로그램을 작성하는 방법을 배웁니다.

먼저 카이사르 암호의 암호화 및 복호화 원리를 살펴보겠습니다. 주어진 문자에 대해 Caesar 암호로 암호화된 후의 값은 다음 공식으로 표현될 수 있습니다.

Ciphertext = (plaintext + key) mod 26

이 공식에서 "plaintext"는 원래 문자인 "key"를 나타냅니다. "mod 26"은 문자를 이동하려는 양을 의미하고 "mod 26"은 암호문을 얻기 위해 문자를 알파벳의 26개 위치에 매핑하는 것을 의미합니다.

다음으로 일반 텍스트와 키를 입력으로 사용하고 암호문을 출력하는 간단한 Caesar 암호 암호화 프로그램을 구현하겠습니다.

먼저 사용자 입력 및 출력 결과를 읽을 수 있도록 "fmt" 패키지를 가져와야 합니다. 또한 문자열 상수를 사용하여 26개 문자의 순서를 정의하여 그 중에서 특정 문자를 선택할 수 있습니다.

package main

import "fmt"

const alphabet = "abcdefghijklmnopqrstuvwxyz"
로그인 후 복사

다음으로 문자열과 정수를 입력으로 받아들이고 문자열을 반환하는 함수를 정의하겠습니다. 이 함수는 Caesar 암호의 암호화 기능을 구현합니다:

func caesarCipher(s string, k int) string {
    var result []byte

    for i := 0; i = 'a' && c = 'A' && c <p> 위 함수에서는 먼저 암호화된 결과를 저장하기 위해 빈 바이트 슬라이스를 정의합니다. 그런 다음 루프를 사용하여 입력 문자열의 각 문자를 반복합니다. 문자가 소문자인 경우 이를 정수로 변환한 다음 해당 값에 키를 추가하고 마지막으로 모듈러스 연산을 사용하여 이를 알파벳의 위치에 매핑합니다. 마지막으로 암호화된 문자를 결과에 추가합니다. </p><p>대문자의 경우 먼저 소문자로 변환한 다음 알파벳 위치에 매핑하고 마지막으로 대문자로 변환해야 한다는 점만 제외하고 비슷한 작업을 수행할 수도 있습니다. </p><p>마지막으로 사용자 입력을 읽고 결과를 터미널에 인쇄하는 간단한 기본 함수를 작성하겠습니다. 전체 프로그램은 다음과 같습니다. </p><pre class="brush:php;toolbar:false">package main

import (
    "fmt"
    "unicode"
)

const alphabet = "abcdefghijklmnopqrstuvwxyz"

func caesarCipher(s string, k int) string {
    var result []byte

    for i := 0; i = 'a' && c = 'A' && c <p> 이제 프로그램을 실행하고 성공 여부를 테스트할 수 있습니다. 다음은 샘플 입력 및 출력의 스크린샷입니다. </p><p><img src="https://img.php.cn/upload/article/000/000/068/168230421494581.png" alt="Golang을 사용하여 간단한 Caesar 암호 암호화 프로그램을 작성하는 방법" title="Golang을 사용하여 간단한 Caesar 암호 암호화 프로그램을 작성하는 방법"></p><p>위 그림에서 볼 수 있듯이 우리 프로그램은 Caesar 암호 암호화 기능을 성공적으로 구현했습니다. 물론 이것은 아주 기본적인 암호화 방법일 뿐이며 쉽게 해독될 수 있습니다. 따라서 실제 응용에서는 민감한 데이터와 정보를 보호하기 위해 보다 복잡한 암호화 알고리즘을 사용해야 합니다. </p>
로그인 후 복사

위 내용은 Golang을 사용하여 간단한 Caesar 암호 암호화 프로그램을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿