В Javascript легко подписывать и проверять, используя существующие библиотеки. Однако это сбивает с толку, если мы хотим сгенерировать пару открытого и закрытого ключей в Javascript, подписать текст, а затем проверить его в Flask. Я уже знаю некоторые различия, например, хеширование по умолчанию на стороне Javascript и на стороне Python. Однако проверка на стороне Flask по-прежнему не удалась.
index.html
function send(){
promise = window.crypto.subtle.generateKey(algo,
true, //whether the key is extractable (i.e. can be used in exportKey)
["sign", "verify"] //can be any combination of "sign" and "verify"
);
console.log(promise)
promise.then( (keys) => {
priv = keys.privateKey
pub = keys.publicKey
console.log(pub)
console.log(exportCryptoKey(pub))
const pub_key_export = exportCryptoKey(pub)
return pub_key_export.then( (pub_key) => {
console.log("storing keys in", pub_key)
signature = window.crypto.subtle.sign(algo, priv, enc_msg);
signature.then((sign) => {
sgn = window.btoa(ab2str(sign));
$.post("verify", {"pub": pub_key, "data": ab2str(enc_msg), "signature": sgn}, function(data){
console.log("data", data);
})
})
})
})
}
verify.py
def verifySignature(signature, data, pub_key):
key = RSA.importKey(pub_key)
h = SHA256.new(data.encode("utf-8"))
verifier = PKCS1_v1_5.new(key)
return verifier.verify(h, signature)
Подробнее здесь: https://stackoverflow.com/questions/682 ... y-in-flask
Войдите в Javascript и проверьте в Flask. ⇐ Python
Программы на Python
1765577751
Anonymous
В Javascript легко подписывать и проверять, используя существующие библиотеки. Однако это сбивает с толку, если мы хотим сгенерировать пару открытого и закрытого ключей в Javascript, подписать текст, а затем проверить его в Flask. Я уже знаю некоторые различия, например, хеширование по умолчанию на стороне Javascript и на стороне Python. Однако проверка на стороне Flask по-прежнему не удалась.
[b]index.html[/b]
function send(){
promise = window.crypto.subtle.generateKey(algo,
true, //whether the key is extractable (i.e. can be used in exportKey)
["sign", "verify"] //can be any combination of "sign" and "verify"
);
console.log(promise)
promise.then( (keys) => {
priv = keys.privateKey
pub = keys.publicKey
console.log(pub)
console.log(exportCryptoKey(pub))
const pub_key_export = exportCryptoKey(pub)
return pub_key_export.then( (pub_key) => {
console.log("storing keys in", pub_key)
signature = window.crypto.subtle.sign(algo, priv, enc_msg);
signature.then((sign) => {
sgn = window.btoa(ab2str(sign));
$.post("verify", {"pub": pub_key, "data": ab2str(enc_msg), "signature": sgn}, function(data){
console.log("data", data);
})
})
})
})
}
[b]verify.py[/b]
def verifySignature(signature, data, pub_key):
key = RSA.importKey(pub_key)
h = SHA256.new(data.encode("utf-8"))
verifier = PKCS1_v1_5.new(key)
return verifier.verify(h, signature)
Подробнее здесь: [url]https://stackoverflow.com/questions/68233692/sign-in-javascript-and-verify-in-flask[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия