Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 23.03.2017
Сообщений: 101

Зашифровать текст публичным ключом RSA

11.02.2020, 14:08. Показов 1559. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть ключ в таком формате:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAov3a9IMmm8TqmUw3kR1a
Cafdmc6/dwVskgOkp144IPqYcdDcvIy WytytcMvvpqk9c9vvamBLj6g05jT2ZVR
dXG5Ca35iMg6pzrmrVrhLgagcGeD7UR1smG1h0mazoGLay65gUkuknqg xvdTtiA
GDp zJKQUS06r2Yy9P5U1zqv8GLAPTAI1owVbo2syPXVW5G4LtWRIR9Q928SsbdL
rOH MOHQTT6qLPFyOh6yU0L8bSkffi8Sj6CK7SmyCAuQta7ACPI4/tj1ARtLHZaa
UIsNoA 6eLfQu0M79Iew2NzSMP2JZINhdB83bzq 3kE40pWL9 81mAqCSntM 2Uv
6wcvXnZ2E tTFJchwzR27NAMchMco0Yf VsedMVsjmDnQ66V8FWNync/qWyTXj6H
XhcgHLfuS9zfDntPDr7DCmxOESwJlmEsG4JQofyAuzYf34Y18ct3pNj TieT3vA4
YV1YQQFhXfbFD7ScZKyfIjUoqMJUNAVAe5fVtM1PT91ha3bBu0JY7NjLA5Ey/mpT
jqoF/M11BshskKII866pkQqj2tem3J2k95IfH oIg0rsruEDtvWZC1FmrmXUR3T0
ZC2y7h6gYI4zBC60xeaLWhC98OQVAq0x32FfaOQbnNR94WqrmOpR79OiWsYIpHZW
O/y6/1SSRJROW0YIEK0mjH0CAwEAAQ==
-----END PUBLIC KEY-----
Но никак не могу разобраться как его использовать. Библиотека crypto вообще не работает, pycrypto не устанавливается. Установил библиотеку rsa, но при вызове функции rsa.encode(msg, key) он ругается, что ключ содержит некорректные символы.

Как зашифровать текст с помощью этого ключа?

Вот JS код, который генерирует публичный ключ и отправляет его на сервер:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function init_rsa_keypair(){
// Basic initialization
var crypt = new Crypt();
var rsa = new RSA();
/*
var rsa = new RSA({
    keySize: 1024,
    rsaStandard: 'RSAES-PKCS1-V1_5', // RSA-OAEP or RSAES-PKCS1-V1_5,
});
*/
 
//var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
//U2FsdGVkX18ZUVvShFSES21qHsQEqZXMxQ9zgHy+bu0=
 
//var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
    alert(supports_html5_storage());
    var str_url_q = window.location.href;
    var arr_url_q = str_url_q.split('/');
    var url_q = arr_url_q[arr_url_q.length - 1];
    var rsa_pub_key = localStorage.getItem("rsa_pub_key"+url_q);
    var rsa_private_key = localStorage.getItem("rsa_private_key"+url_q);
    //alert("rsa_pub_key"+url_q);
    if (rsa_pub_key && rsa_private_key){
        //alert(rsa_pub_key);
        //alert(rsa_private_key);
    }else{
        rsa.generateKeyPair(function(keyPair) {
            // Callback function receives new key pair as a first argument
            var publicKey = keyPair.publicKey;
            var privateKey = keyPair.privateKey;
            localStorage.setItem("rsa_pub_key"+url_q, publicKey);
            localStorage.setItem("rsa_private_key"+url_q, privateKey);
            rsa_pub_key = publicKey;
            rsa_private_key = privateKey;
        });
    }
    var params = 'rsa_public='+rsa_pub_key;
    const http = new XMLHttpRequest();
    alert(rsa_pub_key);
    var encrypted = crypt.encrypt(rsa_pub_key, message);
    //alert( getCookie("token"));
    http.open('POST', '/lk/set_rsa_key/'+url_q);
    http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    http.send(params) // Make sure to stringify
    http.onreadystatechange = function() {
        // проверяем состояние запроса и числовой код состояния HTTP ответа
        if (this.readyState == 4 && this.status == 200) {
        alert('ok');
        }
    }
 
}
Вот Python код, в котором пытаюсь зашифровать сообщение с помощью переданного публичного ключа:

Python
1
2
3
4
5
6
7
8
9
10
11
12
def set_rsa_key(request, url):
    auth = UsersAuth.objects.filter(token=request.COOKIES['token']).first()
    user = Users.objects.filter(username=auth.username).first()
    chat = Chats.objects.filter(users=user, url=url).first()
    if request.method == 'POST':
        print(request.POST['rsa_public'])
        pubkey = rsa.PublicKey.load_pkcs1(request.POST["rsa_public"])
        crypto = rsa.encrypt("1123", pubkey)
        print(crypto)
        print(request.POST['rsa_public'])
        return HttpResponse('true')
    return HttpResponse('false')
Ошибку выдает следующую:
Code
1
No PEM start marker "b'-----BEGIN RSA PUBLIC KEY-----'" found
В чем проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2020, 14:08
Ответы с готовыми решениями:

Зашифровать сообщение имеющимся публичным ключом (RSA)
Господа, нуждаюсь в вашей помощи. Вопрос по RSA: Есть сгенерированный публичный ключ (public.crt), приватный ключ хранится на...

Как зашифровать и расшифровать текст с ключом?
Вводим в консоли любую строку, вводим ключ под эту строку, дальше текст перемешивается, далее вводим ключ и пишем зажифрованную строку( в...

Зашифровать текст, ключом которого является слово
Здравствуйте, есть у меня интересная задачка. Нужно зашифровать текст, ключом которого является слово. Поясню: есть латинский алфавит....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2020, 14:08
Помогаю со студенческими работами здесь

RSA ,нужно зашифровать текст
Всем привет!Мне нужна помощь,нужно реализировать RSA шифрование.P Q и E нужно вводить с клавиатуры. Может у кого то есть готовый...

Зашифровать текст методом RSA
Было необходимо зашифровать текст методом RSA, без библиотеки python rsa def deShifr(c, d, n): m = for i_c in c: temp =...

Зашифровать текст с помощью алгоритма RSA
Здравствуйте! Решаю задачу по условию которой надо раздельно по абзацам зашифровать текст в Word используя алгоритм RSA. И этот текст , а...

Зашифровать исходный текст Т с шифра Цезаря с ключом k=20, любой язык программирования
1) Зашифровать исходный текст Т с шифра Цезаря с ключом k=20. Т=«ЛУЧШИЙ КРИТЕРИЙ ПРАКТИКА» 2) Описать ход решения с указанием таблицы...

Rijndael 128 bit (AES) как зашифровать текст ключом в Edit в delfi7?
Rijndael 128 bit (AES) как зашифровать текст ключом в Edit в delfi7?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru