Я хотел бы зашифровать текст с помощью rsa, а затем использовать зашифрованный текст в qr, но у меня возникли проблемы.
Можете ли вы помочь мне?
I 'используя следующую библиотеку hybrid-crypto-js, знаете, где я не прав?
Ошибка:
Warning: Failed prop type: Invalid prop `value` of type `function` supplied to `QRCodeSVG`, expected `string`.
Ссылка: codesandbox
код:
import React from "react";
import ReactDOM from "react-dom";
import QRCode from "qrcode.react";
import "./styles.css";
import { Crypt, RSA } from "hybrid-crypto-js";
function App() {
let rsa = async () => {
console.log("rsa");
var crypt = new Crypt({ md: "sha1" });
var rsa = new RSA({ keySize: 1024 });
let on = rsa
.generateKeypairAsync()
.then(keys => {
var signature = crypt.signature(keys.privateKey, "Hello world");
console.log("signature: ", signature);
var encrypted = crypt.encrypt(keys.publicKey, "Hello world", signature);
console.log("encrypted: ", encrypted);
var decrypted = crypt.decrypt(keys.privateKey, encrypted);
console.log("decrypted: ", decrypted);
var verify = crypt.verify(
keys.publicKey,
decrypted.signature,
"Hello world"
);
console.log("verify: ", verify);
return verify;
})
.catch(error => {
console.log(error);
});
console.log("w", on);
return "Hi";
//return on;
};
return (
<div className="App">
<QRCode
value={rsa}
renderAs="svg"
level={"H"}
fgColor="#333"
bgColor="#fff"
key={`level-H`}
/>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);