HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 07.05.2024, 23:05
вареник с мясом?
Новичок
Регистрация: 13.01.2024
Сообщений: 15
С нами: 1229791

Репутация: 1
По умолчанию

Набросал код для шифрования. Вконо ли я понимаю, что сначала я пишу текст и потом через скрипт указываю публичный ключ для шифрования и так же для дешифрования? Пишу уже зашифрованный текст и после даю закрытый ключ
 
Ответить с цитированием

  #2  
Старый 10.05.2024, 09:11
вареник с мясом?
Новичок
Регистрация: 13.01.2024
Сообщений: 15
С нами: 1229791

Репутация: 1
По умолчанию

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

  #3  
Старый 10.05.2024, 13:28
kiaostashi
Познающий
Регистрация: 27.04.2019
Сообщений: 45
С нами: 3709605

Репутация: 63
По умолчанию

Зависимость: pycryptodome

Python:





Код:
from
Crypto
.
Signature
import
pkcs1_15
from
Crypto
.
Hash
import
SHA256
from
Crypto
.
PublicKey
import
RSA
def
generate_signature
(
message
,
private_key
)
:
private_key_obj
=
RSA
.
import_key
(
private_key
)
h
=
SHA256
.
new
(
message
.
encode
(
)
)
signature
=
pkcs1_15
.
new
(
private_key_obj
)
.
sign
(
h
)
return
signature
def
verify_signature
(
message
,
signature
,
public_key
)
:
public_key_obj
=
RSA
.
import_key
(
public_key
)
h
=
SHA256
.
new
(
message
.
encode
(
)
)
try
:
pkcs1_15
.
new
(
public_key_obj
)
.
verify
(
h
,
signature
)
return
True
except
(
ValueError
,
TypeError
)
:
return
False
key_pair
=
RSA
.
generate
(
2048
)
private_key
=
key_pair
.
export_key
(
)
public_key
=
key_pair
.
publickey
(
)
.
export_key
(
)
message
=
"blast.hk"
signature
=
generate_signature
(
message
,
private_key
)
verified
=
verify_signature
(
message
,
signature
,
public_key
)
print
(
f"verified:{verified}"
)
# verified: True
 
Ответить с цитированием

  #4  
Старый 17.05.2024, 11:38
вареник с мясом?
Новичок
Регистрация: 13.01.2024
Сообщений: 15
С нами: 1229791

Репутация: 1
По умолчанию

Цитата:
Сообщение от kiaostashi  

Зависимость: pycryptodome

Python:





Код:
from
Crypto
.
Signature
import
pkcs1_15
from
Crypto
.
Hash
import
SHA256
from
Crypto
.
PublicKey
import
RSA
def
generate_signature
(
message
,
private_key
)
:
private_key_obj
=
RSA
.
import_key
(
private_key
)
h
=
SHA256
.
new
(
message
.
encode
(
)
)
signature
=
pkcs1_15
.
new
(
private_key_obj
)
.
sign
(
h
)
return
signature
def
verify_signature
(
message
,
signature
,
public_key
)
:
public_key_obj
=
RSA
.
import_key
(
public_key
)
h
=
SHA256
.
new
(
message
.
encode
(
)
)
try
:
pkcs1_15
.
new
(
public_key_obj
)
.
verify
(
h
,
signature
)
return
True
except
(
ValueError
,
TypeError
)
:
return
False
key_pair
=
RSA
.
generate
(
2048
)
private_key
=
key_pair
.
export_key
(
)
public_key
=
key_pair
.
publickey
(
)
.
export_key
(
)
message
=
"blast.hk"
signature
=
generate_signature
(
message
,
private_key
)
verified
=
verify_signature
(
message
,
signature
,
public_key
)
print
(
f"verified:{verified}"
)
# verified: True

Спасибо за ответ. Я ошибочно использовал библиотеку pyrsa но и без ответа разобрался, но все равно спасибо. Есть вариант улучшить рандомизацию ключей, чтобы не было повторений?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.