Hej! Ako dodávateľ háčikov som videl z prvej ruky, ako je dopyt po všestranných a spoľahlivých háčikoch na vzostupe, nielen vo fyzickom svete, ale aj v digitálnom priestore. Dnes budem hovoriť o niečom trochu inom - ako používať háčiky pre webové krypto API v React. Najprv sa však rýchlo pozrieme na niektoré z úžasných háčikov, ktoré ponúkame vo fyzickej ríši.
Máme nejaké skutočne skvelé produkty akoHáčik na obdĺžnikové hadičky. Tento háčik je veľmi užitočný pre všetky druhy aplikácií, kde potrebujete pripojiť veci k obdĺžnikovej hadičke. Je robustný, dobre - vyrobený a zvládne dobré množstvo hmotnosti. Ďalšou skvelou voľbou jeHák na poličku supermarketu. Tieto háčiky sú navrhnuté špeciálne pre police supermarketov, čo uľahčuje zobrazovanie výrobkov a udržiavajú všetko organizované.

Teraz sa poďme na digitálnu stránku vecí. Web Crypto API je výkonný nástroj, ktorý umožňuje vývojárom webom vykonávať kryptografické operácie v prehliadači. Je to všetko o udržiavaní bezpečnosti údajov, či už ide o informácie o používateľoch, finančné transakcie alebo čokoľvek iné, čo si vyžaduje ochranu. A React, je to jedna z najpopulárnejších knižníc JavaScript na budovanie používateľských rozhraní. Ako teda spojíme tieto dva dokopy pomocou háčikov?
Čo sú háčiky v reakcii?
Ak ste nováčikom v reagovaní, háčiky sú relatívne novou vlastnosťou (predstavené v React 16.8), ktorá vám umožňuje používať stav a ďalšie funkcie React bez toho, aby napísal triedu. Sú to funkcie, ktoré vám umožňujú „pripojiť sa k“ funkciám stavu react a životného cyklu z funkčných komponentov. NapríkladUsstateHook vám umožňuje pridať stav do funkčného komponentu.
import react, {usestate} z 'react'; Funkcia príklad () {const [count, setCount] = usestate (0); return (<div> <p> kliknete na {count} tims </p> <tlačidlo onClick = {() => setCount (count + 1)}> kliknite na mňa </button> </div>); }
V tomto jednoduchom príklade,Usstateje háčik, ktorý inicializuje stavovú premennúpočítaťs počiatočnou hodnotou 0.setCountFunkcia sa používa na aktualizáciu hodnotypočítať.
Prečo používať háčiky s webovým kryptom API v React?
Používanie háčikov s webovým krypto API v React môže váš kód modulárnejšie, opakovane použiť a ľahšie pochopiteľné. Namiesto toho, aby ste boli rozptýlení komplexným kryptografickým kódom po celom vašich komponentoch, môžete ho zapuzdriť vo vlastných háčikoch. Týmto spôsobom môžete znovu použiť rovnakú kryptografickú logiku v rôznych častiach vašej aplikácie.
Vytvorenie vlastného háčika pre webové krypto API
Povedzme, že chceme vytvoriť vlastný háčik na vygenerovanie náhodného kryptografického kľúča pomocou webového krypto rozhrania. Takto to môžeme urobiť:
Import reagovať z „reagovať“; Import {usecallback, USEEffect, usestate} z 'react'; const usecryptokey = () => {const [cryptokey, setCryptokey] = usestate (null); const generyKey = usecallback (async () => {try {const key = await window.crypto.subtle.generationKey ({name: 'aes-gcm', dĺžka: 256,}, true, ['ciskrypt', 'decrypt']); }}, []); USEEffect (() => {generateKey ();}, [generteKey]); návrat Cryptokey; }; funkcia app () {const key = usecrypTokey (); return (<div> {key? (<p> crypto kľúča generované úspešne! </p>): (<p> generovanie krypto kľúčov ... </p>)} </div>); } exportovať predvolenú aplikáciu;
V tomto príklade sme vytvorili vlastný háčik s názvomusekryptokey. Vo vnútri háčika používameUsstateHák na správu stavu kryptografického kľúča. TengenerovaťFunkcia je asynchrónna funkcia, ktorá používa webové krypto API na generovanie klávesu AES - GCM. Používameutrpenieháčik na poznámkugenerovaťFunkcia tak, aby sa nezískala na každom vykreslení. TenubytovanieHák sa používa na volaniegenerovaťFunkcia, keď sa komponent pripojí.
Šifrovanie a dešifrovanie údajov pomocou vlastného háku
Teraz to urobme o krok ďalej a vytvorme si vlastný háčik na šifrovanie a dešifrovanie údajov pomocou vygenerovaného klávesu.
Import reagovať z „reagovať“; Import {usecallback, USEEffect, usestate} z 'react'; const usecryptoEncryption = () => {const [cryptokey, setCryptokey] = usestate (null); const generyKey = usecallback (async () => {try {const key = await window.crypto.subtle.generationKey ({name: 'aes-gcm', dĺžka: 256,}, true, ['ciskrypt', 'decrypt']); }}, []); const encryptData = usecallback (async (data) => {if (! crypTOKey) {return null;} try {const coder = new textCoder (); const databuffer = conoder.encode (data); const iv = window.crypto.getRandomValues (new uint8array (12)); Window.Crypto.subtle.enCrypt ({name: 'AES-GCM', IV: IV,}, Cryptokey, Databuffer); dáta: ', chyba); const deryptdata = usecallback (async (encryptedData) => {if (! cryptokey) {return null;} try {const iv = šifrtedData.slice (0, 12); const data = „AES-GCM“, IV: IV,}, Cryptokey, dáta); USEEffect (() => {generateKey ();}, [generteKey]); return {encryptData, decryptData}; }; funkcia app () {const {encryptData, decryptData} = usecryptoenCryption (); const [EncryptedData, SetEnCryptedData] = usestate (null); const [dešifledData, setDecryptedData] = usestate (null); const handleEncrypt = async () => {const data = 'ahoj, svet!'; const šifrovaný = čakať na šifrovanie (dáta); setencryptedData (šifrovaný); }; const mansedecrypt = async () => {if (encryptedData) {const decrypted = await decryptData (šifrtedData); setDecryptedData (dešifrovaný); }}; return (<div> <tlačidlo onclick = {handleEncrypt}> šifrovať dáta </blouping> {fccreptedData && (<p> Šifované údaje: {CisftedData.Tostring ()} </p>)} <button OnClick = {handleCrypt }> decrrypt dáta </blomping> {decryped {decryped {decryped: {decryped: {decryped {decryped: {decryped: {decryped {decryped}: decryped: {decryped {decryped {decryped}: decrysPt Data </blomped: {decryptedData} </p>} </div>); } exportovať predvolenú aplikáciu;
V tomto príklade sme rozšírili náš vlastný háčik o funkcie pre šifrovanie a dešifrovanie údajov. TenšifrovanieFunkcia berie reťazec údajov, kóduje ich, generuje náhodný inicializačný vektor (IV) a potom šifruje údaje pomocou vygenerovaného kryptografického kľúča. TendešifrovanieFunkcia berie šifrované údaje, extrahuje IV a dešifruje údaje pomocou rovnakého kľúča.
Záver
Používanie háčikov s webovým krypto API v React môže zvýšiť bezpečnosť vašich webových aplikácií a ľahšie sa udržiavať. Zapojením kryptografickej logiky vo vlastných háčikoch ju môžete znova použiť v rôznych komponentoch a udržať svoju kódovú základňu čistú.
Ak vás zaujímajú naše fyzické háčiky, ako jeHáčik na obdĺžnikové hadičkyaleboHák na poličku supermarketualebo ak máte akékoľvek otázky týkajúce sa používania háčikov v digitálnom priestore, neváhajte a oslovte diskusiu o obstarávaní. Sme tu, aby sme pomohli!
Odkazy
- Dokumentácia reakcie
- Web Crypto API MDN dokumentácia
