From f22a726d52d1ddbe319faa1dd8f10ebfad5c1688 Mon Sep 17 00:00:00 2001 From: Ardis Lu Date: Thu, 4 Jul 2024 18:05:40 -0700 Subject: [PATCH] Add an example of encrypting an HTML page --- .github/1.png | Bin 0 -> 27304 bytes .github/2.png | Bin 0 -> 1871 bytes .github/3.png | Bin 0 -> 5084 bytes README.md | 14 ++++++++++++++ 4 files changed, 14 insertions(+) create mode 100644 .github/1.png create mode 100644 .github/2.png create mode 100644 .github/3.png diff --git a/.github/1.png b/.github/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c03d31432f0d2b4750abca11e02c4d1652ef9f8b GIT binary patch literal 27304 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 RB1J**;GTx^2c<`W{{tS-RK)-Q literal 0 HcmV?d00001 diff --git a/.github/2.png b/.github/2.png new file mode 100644 index 0000000000000000000000000000000000000000..cc33f2c2b68c4cc6bab2098c0858f2343bea3902 GIT binary patch literal 1871 zcmc&!`#aNn9REhtsWZtb6UT8$E0G+LR8sDjLKjZO2#H6h#YS1Di`>R3L>GyYn59XN zOU=xpc5kM!Olz}RGfO7B9G5ZeOy^JNc{=as^~3A^e!ZU0=l#6j&+{$}4-EhRsaYhQO^TToV|ii~Ppo|VQOOnQpx}x5+z*O@4+_qEIY+4IUx2({IMFAR z_X#INVr>7AoF^vs4NZ{6N*<4gk!rbIE?G>h7i${CO6tHkbwEZP7~^m_ls97}jt-yM zY<6#N?=&sv`RmWmUyt_m^bmVTJ9|fYtb3iTQ6`f~V0~gR7<4+FN~KaLlvdgZnM@{; zNX0BAiI!7H)1YWtUUQZRtK%#YHeQMeE5u3>%}PWwkyMgHz7bMif{nyV!!S}(3513M zd~Wa?GJ(|8R8R@49tr`Kng@0s> z-?u~)`fChtTOr@w-l?20BzMY^LlTu4oPO7KwgGqww?O|2_dQn_r&&rZH=yfTblL$mb{MY#gpFLhq4$>EEM6zjOp%>ILZ7s z{@A3{J=%hGh_LWDqt9(@zaG3S%JrkXhl)7Y1M9xy=F(6{cfFc?^VCj>DPhsc z5lk7${Ut6ymm8i;KhKemu`=Wt|1t?rE zL|)Ng`j#t6&CWwf*WpZ6;>Je;r-Kz>t0`>W6Rt8A^Iml(;UfN2XMOr$d$2v!(F>j4 zWwIP+Pqga!c*JqgCq zk1|AW`YM)VZsP~I+0mG{<}sLd=-74&bkP3$E>L&UU#T#C>!kp|j=Op{&(t+{y|cmG z=9flx;X{@`;9h*+7mXI(HiPq>@2%orp`RK3*_Xnw4>dd4Z~3WwD|zANAiq%GChud} F{{j^(^cnyF literal 0 HcmV?d00001 diff --git a/.github/3.png b/.github/3.png new file mode 100644 index 0000000000000000000000000000000000000000..6df2c4d917b0ebbb1997b377cd3f2e3dcc56e439 GIT binary patch literal 5084 zcmd^D3pA8#_a7;jTxup{DwmkS47ry}nxw(Z5M~;;P|BrK3Xz5qLLyFhapY3Olrb|d zgU*ma>12ow6{g(9=z@fbNWOQ@InLL2*7?4^^ZnO<{nxktv(`I%y}$L_`+4@>&wke4 zZ-RrJwba^8YatMb6ds2qK_J5Z5XdS^u~i^~)-gB*fov$mWA~6ldnUTK3V~pw?m}jq z^s8-+UHc)BYAncOA|Mba7zCmz4vETG{kyzNSOxJ!3PH*N$nVkx|9ATTBQ-%N1flth zA^G1`i(;H%*I8u|_XA46X)v104n&$hQ95TfB`<}3Eo!!`??Tw;-Cum6?B!bgs7;* zIm!EqH*^Eb%R6+fH6*pP+C;SWJ-_2}{SJ;X5QC>8epFqKN?#2z2hXE2Seh#`1uRh< zSejI@l2;@NtY{Qi(I9rW&%^5KRjaQGB}1Qg*~%1tDn?&3Yw#^F)o zBp8*No(@Q$;5{Qg3vbU1h@w!)J%q-=o7BmuB1EUJMkSx0ZT|qVkTj&#?-M^Rw}BRsW=3PVO6GX8T8f!uFih% zU-}e&ee&H*qxK`CtsU!V{&ak+@8P~v*Q-CZowvq&^siA$KeNQqSY*F?ku)Uir)MyB zYujdHwcTij4rfYZQ)z|L4zky3l+(5ie)#k3$)>(o&pq`oS!!2RE7K$jA1Y#Q^o?3K zY#>}|eWC{RcIo6kT{drd1}o#2jP5GcWG-43<+Q-V{5EJU(u<42*`b;*X|=Fx@;ZfC zw+F?ikMJeN3JRhD%QeWk!cnbIXXnk)vqz-O@SkPRlju7mK14VN?7AuP}Hl(iigL>oXUp{KfkVX znAtCNZ?QWiq@%4~8Y!gQdU4o7ms6}bZirrvQLXG>1!*~F*a}xHQRW+6cEd<$pfy~{ zWCwjKe52fCAj4LYN{0n7o|xSz+CStwRme&86238owFP&!|OM(M!Jk_$uJ$Q8& zT`gt&>hX;Q2-padIXGeG*@%3I5gT`A96f1FdsnCb{H^{(CJi>-T)hhw`)bp}a2Dmq zwqidb?DfUMvjz#>EeB@ht?{ zIWf{$#18GphUf$%p;U8`)SQJ`_k%CLlo~A>#HEK7gcA?VbYO5wl#*73=wz`cg>{=V zXC4&;1%%5qp!jb2(afJdIJJ15qj{=%%4CFx?LMf6b5nHEyQq3s7vCqBE9pKnOeS0I zuu98KCd6H|G(EL={DEwe-M)Ol*t#1P{X9m|-sU?4qrf=fWfgynee~jVb#Y+08yOFE ztnkv`yp5Vn2r>+*skho{FD4beRk$zp^upQiEmQ_fVsF)xUuU-~;90_C;N0{ArB!Oq zD+(&I(4|AE?N{o?E#<}#UeF#VI*f~{>{f}M-nfD0&3zZ}5T2?AEi#LksN~6puP0iI z9kw>FsI(N^~G!qJ&bo31LBa(u%ut<3NXu9~0 zUU%!7-rH5*jn(NGY`!laq8=Vmn06%~5sfM!Tqy&X+brZ5?DKR{2BMXp!XIC>?usn+ z{&2xSiHOwMHIdM>S3@>;QEu&1>Gpdpm5SJrHd~~d!t>7rt|Y6fg$!Jp_>yBfIgMLK z#_xz5gpm+Uj;ib5SeMcO75bTGLeGT~&J2%<9fNk=EM|}~PW7)3g~lH%A7_5XP8X`vMjU* zd!1hLOHSki|3OkF&f2(t{1!8mYLm6KCmL$Ux zcdNdW)4Du6b<9!Uz2eiLq<@?rm^&Ken^ug8K2s)7dgEq0k^SHRhSGT z($=8I0&UmjmlI$W7W-0gKl`SdEOBkT`sY*HgUfrwo0Q0SImZ{SH#(qAT)lo6T|6x} zi%`(}>O&{mmAW7!aX^(EMnBc=_2>kqW%0D>i9nud-hfznUb2a4hbt*@AFtti!ev2* zF*WiXbQ4_FFqdKA}*17*>U?JdfAU@)fAseDHwP`W3d@nJ>|RDiOSom;F*F# ziAYw8%nUnA*B=XBC!lpleb25~v)+N(rPS#F<6kilC1JszKtZ4an)$r>{n+MOrmMegfnOKtzbYFcB{1Fx#8@a=LsVr;2T7lQqda{+$3yP3Q?4!;Zz4T47T zUo?n<#!%2-{@Nf$jaxPJ_xu>y_OYbj|GaxvpY=Z4Q?o+{ZR=S*pL;&SL2FT92M2bV zV0#Axo6D&@;3d&#Q!XlN#LxU;R}cjgtbm>kI@!C>-pWnC+G&Im$Kj)_Z+c6)PPCz1 zb4(&o!K^by+pWrYe&or{)Edmj5h?=Qz}u_9G40Zxr1`e=Txsrniq{+4lCChngz77w zE@mtGWG5zTBZW}n@8W9#*TCR@A41c-iwfUl(fEvYyL($Alb8kE=DXs-EtzQ|@9QJ| zR5PnPfkIy16lzh9tsa>H)VzO1f`M+XtJloxrXYhm4_xyc>?y`sU;A+ShRFjDfiC9= zp()DrOwmzfCGuQA(SG(BW>th!Md|%YfzP3j0|L3J%aJiVdAaJoB4b9CJkak^RdD;) zKhy%#Gcyzax z^7l0UrF8yNHNjXQ7#9R`CHpJ#>#5=otNmA~VV;+G3BG%bzkq{TqEn{@1HH2SxwtJ>4L{LAH29|;N2#8{x!71{EGD-L0_->o2_p{f83jd(7mc5D-{Q~ QB!N$OOFL|-g=h5N07*Ving9R* literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 87a79d1..a23ceb0 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,20 @@ You can also import the function dynamically (useful for lazy-loading or testing const { decrypt } = await import('https://cdn.statically.io/gh/ardislu/static-encrypt/master/decrypt.js'); ``` +### Encrypt an entire HTML page + +The generated HTML file uses [`document.write()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) to replace the entire document when the correct password is entered. So you can input arbitrary HTML into the "Content" box to simulate a new page loading in: + +1. Populate HTML into the "Content" box then encrypt and download the HTML page normally: + +![The static-encrypt frontend populate with HTML in the "Content" box.](./.github/1.png) + +2. The HTML will be displayed only when the correct password is input: + +![The downloaded password-protected HTML page with the correct password input.](./.github/2.png) + +![The HTML from the "Content" box rendered correctly.](./.github/3.png) + ### TypeScript `*.d.ts` files are generated from the [JSDoc](https://jsdoc.app/) comments using `tsc`: -- 2.47.3