シーザー暗号: 文字列を暗号化するシンプルな方法


シーザー暗号の基本的な考え方は、アルファベットの各文字を指定された数だけシフトするというものです。たとえば、シフト数が3の場合、"A"は"D"になります。このように、アルファベットの文字をシフトさせることで、元の文字列を暗号化します。

以下に、シーザー暗号を実装する簡単な方法とコード例を示します。

def caesar_encrypt(text, shift):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            if char.isupper():
                encrypted_text += chr((ord(char) - 65 + shift) % 26 + 65)
            else:
                encrypted_text += chr((ord(char) - 97 + shift) % 26 + 97)
        else:
            encrypted_text += char
    return encrypted_text
# 使用例
plain_text = "Hello, World!"
shift = 3
encrypted_text = caesar_encrypt(plain_text, shift)
print("暗号化されたテキスト:", encrypted_text)

上記のコードでは、caesar_encryptという関数を定義しています。この関数は、引数として暗号化する対象のテキストとシフト数を受け取り、暗号化されたテキストを返します。大文字と小文字は区別され、それぞれ別々にシフトが適用されます。アルファベット以外の文字はそのまま残ります。

このコードを実行すると、次のような結果が得られます。

暗号化されたテキスト: Khoor, Zruog!

以上がシーザー暗号のシンプルな実装方法です。この暗号は簡単に理解できるため、教育目的や基本的な暗号化に利用されることがあります。ただし、セキュリティの観点からは弱い暗号化手法であるため、実際のセキュリティ目的で使用する場合は他の強力な暗号化アルゴリズムを検討することをおすすめします。

このコード例と説明を参考に、シーザー暗号を実装してみてください。