Рубрики

XOR Cipher

XOR Encryption — это метод шифрования, используемый для шифрования данных, и его трудно взломать методом грубой силы, то есть генерировать случайные ключи шифрования, соответствующие правильному.

Ниже приведена простая реализация на C ++. Концепция реализации состоит в том, чтобы сначала определить XOR-ключ шифрования, а затем выполнить операцию XOR для символов в строке с этим ключом, который вы хотите зашифровать. Чтобы расшифровать зашифрованные символы, мы должны снова выполнить операцию XOR с определенным ключом. Здесь мы шифруем всю строку.

C ++

// C ++ программа для реализации XOR - Шифрование
#include<bits/stdc++.h>

  
// та же функция используется для шифрования и
// расшифровываем

void encryptDecrypt(char inpString[])

{

    // Определение ключа XOR

    // Любое значение символа будет работать

    char xorKey = 'P';

  

    // вычисляем длину входной строки

    int len = strlen(inpString);

  

    // выполнить операцию XOR ключа

    // с каждым символом в строке

    for (int i = 0; i < len; i++)

    {

        inpString[i] = inpString[i] ^ xorKey;

        printf("%c",inpString[i]);

    }

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    char sampleString[] = "GeeksforGeeks";

  

    // Зашифруем строку

    printf("Encrypted String: ");

    encryptDecrypt(sampleString);

    printf("\n");

  

    // Расшифруем строку

    printf("Decrypted String: ");

    encryptDecrypt(sampleString);

  

    return 0;

}

Джава

// Java-программа для реализации XOR - Шифрование

class XOREncryption

{

    // та же функция используется для шифрования и

    // расшифровываем

    static String encryptDecrypt(String inputString)

    {

        // Определение ключа XOR

        // Любое значение символа будет работать

        char xorKey = 'P';

  

        // Определение строки для хранения зашифрованной / расшифрованной строки

        String outputString = "";

  

        // вычисляем длину входной строки

        int len = inputString.length();

  

        // выполнить операцию XOR ключа

        // с каждым символом в строке

        for (int i = 0; i < len; i++) 

        {

            outputString = outputString + 

            Character.toString((char) (inputString.charAt(i) ^ xorKey));

        }

  

        System.out.println(outputString);

        return outputString;

    }

  

    // Код драйвера

    public static void main(String[] args)

    {

        String sampleString = "GeeksforGeeks";

  

        // Зашифруем строку

        System.out.println("Encrypted String");

        String encryptedString = encryptDecrypt(sampleString);

  

        // Расшифруем строку

        System.out.println("Decrypted String");

        encryptDecrypt(encryptedString);

    }

}

  
// Этот код предоставлен Vivekkumar Singh

python3

# Python3 программа для реализации XOR - Шифрование

  
# Та же функция используется для шифрования и
# расшифровать

def encryptDecrypt(inpString):

  

    # Определить ключ XOR

    # Любое значение символа будет работать

    xorKey = 'P';

  

    # вычислить длину входной строки

    length = len(inpString);

  

    # выполнить операцию XOR ключа

    # с каждым символом в строке

    for i in range(length):

      

        inpString = (inpString[:i] + 

             chr(ord(inpString[i]) ^ ord(xorKey)) +

                     inpString[i + 1:]);

        print(inpString[i], end = "");

      

    return inpString;

  
Код водителя

if __name__ == '__main__':

    sampleString = "GeeksforGeeks";

  

    # Зашифровать строку

    print("Encrypted String: ", end = "");

    sampleString = encryptDecrypt(sampleString);

    print("\n");

  

    # Расшифровать строку

    print("Decrypted String: ", end = "");

    encryptDecrypt(sampleString);

  
# Этот код предоставлен Принчи Сингхом

C #

// C # программа для реализации XOR - Шифрование

using System;

      

public class XOREncryption

{

    // та же функция используется для шифрования и

    // расшифровываем

    static String encryptDecrypt(String inputString)

    {

        // Определение ключа XOR

        // Любое значение символа будет работать

        char xorKey = 'P';

  

        // Определение строки для хранения зашифрованной / расшифрованной строки

        String outputString = "";

  

        // вычисляем длину входной строки

        int len = inputString.Length;

  

        // выполнить операцию XOR ключа

        // с каждым символом в строке

        for (int i = 0; i < len; i++) 

        {

            outputString = outputString + 

            char.ToString((char) (inputString[i] ^ xorKey));

        }

  

        Console.WriteLine(outputString);

        return outputString;

    }

  

    // Код драйвера

    public static void Main(String[] args)

    {

        String sampleString = "GeeksforGeeks";

  

        // Зашифруем строку

        Console.WriteLine("Encrypted String");

        String encryptedString = encryptDecrypt(sampleString);

  

        // Расшифруем строку

        Console.WriteLine("Decrypted String");

        encryptDecrypt(encryptedString);

    }

}

  
// Этот код предоставлен 29AjayKumar


Выход:

Encrypted String: 55;#6?"55;#
Decrypted String: GeeksforGeeks

Основная идея XOR — шифрование, если вы не знаете ключ XOR-шифрования до дешифрования зашифрованных данных, то невозможно расшифровать данные. Например, если вы XOR две неизвестные переменные, вы не можете сказать, что вывод этих переменных. Рассмотрим операцию A XOR B, и это возвращает true. Теперь, если значение одной из переменных известно, мы можем указать значение другой переменной. Если A истинно, то B должно быть ложным или если A ложно, то B должно быть истинным в соответствии со свойствами логической операции XOR. Не зная ни одного значения, мы не можем расшифровать данные, и эта идея используется в XOR — шифровании.

Статьи по Теме:
Vigenère Cipher
Цезарь Шифр

Эта статья предоставлена Суровым Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

XOR Cipher

0.00 (0%) 0 votes