Size: a a a

2021 January 28

p

polunin.ai in rust_offtopic
юзер А шлет мне данные
я шлю их юзеру Б на хранение
в любой момент времени юзер С может попросить эти данные у Б
но он хочет удостовериться что они действительные, и что их автор А

я не хочу чтобы Б изменил данные и казалось что эти данные прислал А
источник

OA

Oleg Andreev in rust_offtopic
Eddsa или slingshot/starsig
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
у меня есть данные, которые хранятся у пользователя. я хочу проверять что пользователь их вручную не изменил, но хранить его данные не хочу. нормально у себя хранить хеш-сумму и проверять данные пользователя таким образом? юзер может быть недобросовестным.
Зашифруй симметричным шифрованием
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
данные открытые (любой может прочитать) но не хотелось бы чтобы владелец их изменил
Тогда ассиметричным
источник

p

polunin.ai in rust_offtopic
Oleg Andreev
Eddsa или slingshot/starsig
мне бы попроще. такое чтобы более-менее работало. у меня в команде индусы, и это приложение почти точно в прод не уйдет.
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
мне бы попроще. такое чтобы более-менее работало. у меня в команде индусы, и это приложение почти точно в прод не уйдет.
Какой язык?
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Зашифруй симметричным шифрованием
зачем шифровать если данные открыты?
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
зачем шифровать если данные открыты?
Тогда ассиметричным
Шифруешь своим приватным ключом
Свой публичный отдаёшь клиентам
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
зачем шифровать если данные открыты?
Используй библиотеку libsodium (или её биндинги к своему языку), там функцию crypto_sign
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
зачем шифровать если данные открыты?
https://docs.rs/sodiumoxide/0.2.6/sodiumoxide/crypto/sign/index.html
Для раста вот документация
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Тогда ассиметричным
Шифруешь своим приватным ключом
Свой публичный отдаёшь клиентам
проще ничего нет?
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
проще ничего нет?
Куда проще?
use sodiumoxide::crypto::sign;
let (pk, sk) = sign::gen_keypair();
let data_to_sign = b"some data";
let signed_data = sign::sign(data_to_sign, &sk);
let verified_data = sign::verify(&signed_data, &pk).unwrap();
assert!(data_to_sign == &verified_data[..]);
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Куда проще?
use sodiumoxide::crypto::sign;
let (pk, sk) = sign::gen_keypair();
let data_to_sign = b"some data";
let signed_data = sign::sign(data_to_sign, &sk);
let verified_data = sign::verify(&signed_data, &pk).unwrap();
assert!(data_to_sign == &verified_data[..]);
у меня 4 индуса. я им всем заебусь объяснять что где кому передавать и какие функции вызывать.
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
у меня 4 индуса. я им всем заебусь объяснять что где кому передавать и какие функции вызывать.
Бля, ты хочешь подпись без вызова функций вообще или что?
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя тут буквально ОДНА функция на сигн и ОДНА на верифай
источник

EG

Emmanuel Goldstein in rust_offtopic
gen_keypair делаешь ты сам
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Бля, ты хочешь подпись без вызова функций вообще или что?
я не говорил что хочу подпись
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
я не говорил что хочу подпись
Чтобы нельзя было модифицировать данные, с ними нужно что-то сделать
источник

EG

Emmanuel Goldstein in rust_offtopic
Ну, ты можешь хранить на стороне сервера данные, тогда юзер C сможет их просто запросить у сервера
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Чтобы нельзя было модифицировать данные, с ними нужно что-то сделать
ну вон с хеш-суммой вариант не прокатит?
источник