Ìdíni Ọ̀rọ̀ Ọ̀fẹ́

Dí àti tú ọ̀rọ̀ pẹ̀lú ọ̀rọ̀-ìgbaniwọlé nípa lílo AES-256-GCM tí ó lágbára. Ọ̀rọ̀-ìgbaniwọlé kò kúrò nínú ẹ̀rọ àwárí rẹ rárá. Pín àwọn àṣírí lọ́nà tí ó dájú.

Ó ń ṣiṣẹ́ láìsí ìsopọ̀ ní kété tí a bá kó wọlé

Kóòdùpamọ́ tí ó lágbára, tí ó bá ìdíwọ̀n mu: AES-256-GCM pẹ̀lú kọ́kọ́rọ́ tí a mú jáde láti ọ̀rọ̀-ìgbaniwọlé rẹ nípasẹ̀ PBKDF2 (àkókò 250,000, SHA-256). Ìránṣẹ́ kọ̀ọ̀kan ń lo iyọ̀ tuntun tí kò lórí àti IV.

A kì í fi ọ̀rọ̀-ìgbaniwọlé pamọ́ tàbí kí a rán an síbikíbi — gbogbo rẹ̀ ń ṣiṣẹ́ nínú ẹ̀rọ awò-kọ́ǹpútà rẹ. Bí o bá gbàgbé ọ̀rọ̀-ìgbaniwọlé, kò ní ṣeé ṣe láti gba ìránṣẹ́ náà padà. Fi ọ̀rọ̀ tí a kóòdùpamọ́ àti ọ̀rọ̀-ìgbaniwọlé ránṣẹ́ lọ́nà ọ̀tọ̀ọ̀tọ̀.

Ọ̀nà ṣíṣí: Àbájáde náà jẹ́ base64 ti salt (byte 16) + IV (byte 12) + ọ̀rọ̀ onípamọ́ + àmì GCM byte 16, pẹ̀lú kọ́kọ́rọ́ láti PBKDF2-SHA256 ní ìgbà 250,000. Kò bá OpenSSL tàbí CryptoJS mu, ṣùgbọ́n o lè ṣí i láìlo ojúlé yìí, fún àpẹẹrẹ nínú Node.js:

const c = require('crypto');
const b = Buffer.from(B64, 'base64');
const k = c.pbkdf2Sync(PASSWORD, b.subarray(0, 16), 250000, 32, 'sha256');
const d = c.createDecipheriv('aes-256-gcm', k, b.subarray(16, 28));
d.setAuthTag(b.subarray(b.length - 16));
console.log(d.update(b.subarray(28, b.length - 16)) + d.final());

Bí Ó Ṣe Ń Ṣiṣẹ́

Fi àṣírí kan ránṣẹ́ lórí ọ̀nà tí kò ní ààbò (ímeèlì, ìjíròrò) nípa fífi ìtọ́kasí àdásílẹ̀ tí ìwọ àti olùgbà nìkan mọ̀ sí i. Èyí máa ń lo iṣẹ́ ìsọsọ́tọ̀ọ́ tí ó lágbára tí ó sì jẹ́ ìdílé, gẹ́gẹ́ bí àwọn olùṣàkóso ọ̀rọ̀ ìgbaniwọlé, tí ó ń ṣiṣẹ́ gbogbo rẹ̀ nínú ẹ̀rọ àyẹ̀wò rẹ.

  1. 1
    O máa kọ ọ̀rọ̀ àti ọ̀rọ̀ ìgbaniwọlé kan
    Kò sí ohun tí a máa fi ránṣẹ́; a kì í fi ọ̀rọ̀ ìgbaniwọlé pamọ́ tàbí fi ránṣẹ́ rí.
  2. 2
    A máa ṣẹ̀dá kọ́kọ́rọ́ láti inú ọ̀rọ̀ ìgbaniwọlé rẹ
    PBKDF2 máa ń nà ọ̀rọ̀ ìgbaniwọlé rẹ pẹ̀lú ìgbà 250,000 SHA-256, àti iyọ̀ tuntun kọ̀ọ̀kan ìgbà, tí ó jẹ́ kí ìkọlù fúnra-fúnra lọra.
  3. 3
    A máa fi ọ̀rọ̀ náà sọsọ́tọ̀ọ́ pẹ̀lú AES-256-GCM
    A máa lo IV tuntun ní ìgbà kọ̀ọ̀kan, GCM sì máa fi àmì ìfẹsẹ̀múlẹ̀ kún un kí a lè rí ìfọwọ́kàn (tàbí ọ̀rọ̀ ìgbaniwọlé tí kò tọ́) nígbà ìtúsílẹ̀.
  4. 4
    O máa fi ọ̀rọ̀ tí a sọsọ́tọ̀ọ́ ránṣẹ́
    Fi àbájáde base64 náà ránṣẹ́ lórí ọ̀nà kankan, kí o sì fi ọ̀rọ̀ ìgbaniwọlé ránṣẹ́ lọ́tọ̀ọ̀tọ̀. Olùgbà náà máa fi àwọn méjèèjì sí i láti tú u sílẹ̀.

Gbogbo iṣẹ́ sísọsọ́tọ̀ọ́ ń ṣiṣẹ́ nínú ẹ̀rọ rẹ pẹ̀lú Web Crypto abínibí ẹ̀rọ àyẹ̀wò rẹ. Ọ̀rọ̀ pẹ̀tẹ́ẹ̀tì àti ọ̀rọ̀ ìgbaniwọlé kì í fi ẹ̀rọ rẹ sílẹ̀. Bí ọ̀rọ̀ ìgbaniwọlé bá sọnù, ọ̀rọ̀ náà kò ní lè padà — ìyẹn ni kókó rẹ̀.

Àwọn Irinṣẹ Tó Jọra

Àwọn Ìbéèrè Tí A Máa Ń Béèrè