Я новичок и в StackOverFlow, и в IPFS. Я работаю над проектом для загрузки файлов на IPFS из Front-End с помощью React JS (web),Для этого я использую модуль "ipfs-api" , предоставленный сообществом IPFS.Теперь, что я хочу, я хочу загрузить файл с шифрованием "AES" , означает: -
Для загрузки в IPFS: - 1. Я получил файл от пользователя 2. преобразован в буфер и зашифрован с помощью crypto (модуля) 3. Преобразован зашифрованная строка в буфер для загрузки IPFS 4. Получил хеш для зашифрованного файла
Теперь для получения исходного файла: - 1. Получить файл изIPFS (значит получил зашифрованные данные файла), используя метод ipfs.cat
Расшифровывает файл (используя ту же самую криптографию "aes-128-cbc")
(дает мне необработанные или IDK-данные файла в формате, который я получаю, если регистрирую эти данные в
�PNG
���
IHDR�� �� X ���Y�g���� sBIT ��O���� tEXtSoftware�gnome-screenshot� �>�� �IDATx���{\�u���� �5 ���"( �
длинные данные
Поэтому, пожалуйста, дайте мне знать, что делать с этими данными, я думаю, что мне нужно сохранить их, но как сохранить это в файле, таком как формат PNG или что-то, что с этим делать.
Код, который я использую для загрузки: -
onSubmit = async event => {
event.preventDefault();
var mykey = crypto.createCipher("aes-128-cbc", "mypassword");
var mystr = mykey.update(this.state.buffer, "utf8", "hex");
mystr += mykey.final("hex");
console.log(mystr);
const buffer1 = await Buffer.from(mystr);
await ipfs.add(buffer1, (err, ipfsHash) => {
console.log(err, ipfsHash);
this.setState({ ipfsHash: ipfsHash[0].hash });
}); //await ipfs.add
}; //onSubmit
Код для получения данных: -
onClick = async () => {
try {
console.log("-----------------------------------------");
ipfs.cat(this.state.ipfsHash, (err, result) => {
console.log(err, result);
let r = result.toString();
let r1 = Buffer.from(r);
let mykey1 = crypto.createDecipher("aes-128-cbc", "mypassword");
let m = mykey1.update(r, "hex", "utf8");
m += mykey1.final("utf8");
console.log(typeof m);
this.setState({ fileDat: m });
console.log(this.state.ipfsHash);
});
console.log("-----------------------------------------");
} catch (error) {
//try
console.log(error);
} //catch
}; //onClick
Поэтому, пожалуйста, помогите мне сделать это, в общем, мне нужно сохранитьзашифрованный файл в IPFS и сохраните его хэш в БД и извлеките файл, используя тот же хэш (IPFS) после расшифровки.