ホームページ >バックエンド開発 >Golang >Golang を使用して簡単な Caesar 暗号化プログラムを作成する方法

Golang を使用して簡単な Caesar 暗号化プログラムを作成する方法

PHPz
PHPzオリジナル
2023-04-24 09:11:111172ブラウズ

シーザー暗号は、シフト暗号とも呼ばれる単純な暗号化アルゴリズムです。その原理は、平文内の各文字を一定量だけ移動して暗号文を取得することです。この記事では、Golang を使用して簡単な Caesar 暗号化プログラムを作成する方法を学びます。

まず、シーザー暗号の暗号化と復号化の原理を確認しましょう。特定の文字について、シーザー暗号で暗号化された後のその値は、次の式で表すことができます。

Ciphertext = (平文鍵) mod 26

この式では、「平文」は、元の文字、「key」は文字を移動する量を表し、「mod 26」は暗号文を取得するために文字をアルファベットの 26 位置にマッピングすることを表します。

次に、単純なシーザー暗号暗号化プログラムを実装します。平文と鍵を入力として入力し、暗号文を出力します。

まず、ユーザーの入力結果と出力結果を読み取ることができるように、「fmt」パッケージをインポートする必要があります。また、文字列定数を使用して 26 文字の順序を定義し、その中から特定の文字を選択できるようにします。

package main

import "fmt"

const alphabet = "abcdefghijklmnopqrstuvwxyz"

次に、文字列と整数を入力として受け取り、文字列を返す関数を定義します。この関数は、シーザー暗号の暗号化関数を実装します。

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

    for i := 0; i = 'a' && c = 'A' && c <p> 上記の関数では、まず、暗号化された結果を保存するために空のバイト スライスを定義します。次に、ループを使用して入力文字列内の各文字を反復処理します。文字が小文字の場合は、それを整数に変換し、その値にキーを追加し、最後にモジュラス演算を使用してアルファベット内の位置にマッピングします。最後に、暗号化された文字を結果に追加します。 </p><p>大文字の場合も同様の処理を行うことができます。違いは、最初に小文字に変換し、次にアルファベット内の位置にマッピングし、最後に大文字に変換する必要があることです。手紙。 </p><p>最後に、ユーザー入力を読み取り、結果を端末に出力する単純な main 関数を作成します。完全なプログラムは次のとおりです: </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> 上の図からわかるように、プログラムはシーザー暗号暗号化関数を正常に実装しました。もちろん、これは非常に基本的な暗号化方法にすぎず、簡単に解読される可能性があります。したがって、実際のアプリケーションでは、機密データや情報を保護するために、より複雑な暗号化アルゴリズムを使用する必要があります。 </p>

以上がGolang を使用して簡単な Caesar 暗号化プログラムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。