Ì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ú.
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ẹ.
- 1O máa kọ ọ̀rọ̀ àti ọ̀rọ̀ ìgbaniwọlé kanKò sí ohun tí a máa fi ránṣẹ́; a kì í fi ọ̀rọ̀ ìgbaniwọlé pamọ́ tàbí fi ránṣẹ́ rí.
- 2A 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.
- 3A máa fi ọ̀rọ̀ náà sọsọ́tọ̀ọ́ pẹ̀lú AES-256-GCMA 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ẹ̀.
- 4O 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
Ìsàmíràn Fáìlì (AES-256-GCM)
Fi ọ̀rọ̀-ìgbaniwọlé sàmíràn fáìlì kankan nípa lílo AES-256-GCM àti PBKDF2 (àkókò 250,000). Fáìlì .enc tí ó jáde yóò ṣílẹ̀kùn nìkan pẹ̀lú ọ̀rọ̀-ìgbaniwọlé tí ó tọ́, ohun èlò yìí nìkan sì lè ṣí i padà. Ó ń ṣiṣẹ́ pátápátá lára ẹ̀rọ rẹ — fáìlì rẹ kò lọ kúrò lára ẹ̀rọ rẹ rí.
Ọrọigbaniwọle monomono
Ṣe ina awọn ọrọ igbaniwọle to lagbara, laileto pẹlu gigun aṣa, awọn iru ohun kikọ, ati awọn imukuro. Ko si awọn opin, ko si awọn iwọle.
Ìdíni Caesar & Olùdíni Ọ̀rọ̀
Dí àti tú ọ̀rọ̀ pẹ̀lú Caesar cipher, ROT13, Atbash, àti Vigenère cipher. Àwọn ìdíni àdàpọ̀ àtijọ́, gbogbo rẹ̀ nínú ẹ̀rọ àwárí rẹ.