{"tag":"development","articles":{"blog\/technology\/going-lite":{"key":"blog\/technology\/going-lite","type":"article","published":true,"meta":{"createdAt":"2020-06-28T13:09:18+02:00","publishedAt":"2020-06-28T13:09:18+02:00","group":null,"links":[{"icon":"paper-plane","colour":"primary","url":"https:\/\/avris.it\/lite","displayUrl":null}],"category":"blog","subcategory":"technology","slug":"going-lite"},"content":{"en":{"slug":"going-lite","title":"Going lite \ud83d\ude09","intro":"\u003Cfigure\u003E\n                \u003Cnoscript\u003E\n                    \u003Cimg src=\u0022https:\/\/avris.it\/image\/avris-lite_small.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 class=\u0022border-bottom\u0022 width=\u0022480\u0022 height=\u0022360.24144869215\u0022\u003E                \n                \u003C\/noscript\u003E\n                \u003Cspan class=\u0022hide-noscript\u0022\u003E\u003Cimg src=\u0022data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAbCAYAAAAULC3gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADUElEQVRIia2X227iVhSGv33wITYk0DiJWk07TaW0j9CX6Bv3Eare9qbNaJTOKJNJBoIxYOx96EUEDQQ7DPBLFtbm996f19qHZeGc80IIvPes\/65LCAHwwrPevs+9XjRsGvzP36\/5cjumLCp+\/e1nLn7ovfBsAt9Hwq\/1+JzaGoezDgAVKKR8Cd\/0xrt6dBvtuMiZzWZUVYXWmkAH1LlCKoGpHKffdTnqhlu9+bZqBer1emgZ8PHDI53+EelZQnoRr3gOnTL5mkEIgY4EOpR8uS2Yz+qDArwKtJ7ftJvw5pdThuMO\/96dUEwUzvlG\/8GBNslaS13k2OKBv\/54YF4elGFFL1bZuoyxPNwbZlPN2bkk7TRH5RCrTHrvabucc0wnHmPg\/Tu3fHjT1fTf8\/bXPI0b40LOOrpJyejzkONIA9lXz5umqGzy6NeWbV3XTKcT0n7E+Zs+zjm89wwGA5IkIU3TraG2Am+bQ9ZanHNbDfg10lo3Rqw1Qvf39xRFwduzOe8+aZRShGFIVVU457i6utoZqmnc1ggVRQGAlBJrLUEQYK1FCIG1Fu89Simccwgh6HQ6OwMu1Boh5xx5nhNFEUIIRqPR08TTGmMMcRxTluUSdtv51ArUNvuvr6+5ubkhTVPSNCXLsr3StI2Ee34OrOl5AbZIy+JeSrmxqNv3KGk97fM85+7uDmmnVO4UY+copZhOZpxmHbyv0VpTliUnJydorcmy7HBA6xVgVVUopRmOAiZFhRCKIFBU85i040gShfeeXq9HXdfLKwiCnYFWUraxJPWe\/OMHHscxSitMbRECemcpx1myfO7J6hv72dbTCjQcDsnzp6oxjmKqukIICIIQKeVTexyv7EtSyo0fC01A655WIOcctXGMHnKmQ0OcAMy5H31LHENVwcUFnHzj0Vr\/3+k+QG0b42Aw4NOjISBnVhiSJMEzx9SgVYhUhqMwQYWK0egR7z2Xl5eE4e51tm5auovSQ9mCf94\/Ms+P6PU93eOau1tNp2v4\/q2kdhXzqUNrzfn5+XJCHyRlm2Rqw+e\/hwxMnzD0\/PjTk31xQC72pOeD7qoVIGMM1toVw3A4ZDKZMB6PiaKIsizRWhNF0dJrrSXLMvr9\/l4wQRAgpeQ\/IlqSidy6tlkAAAAASUVORK5CYII=\u0022 data-src=\u0022https:\/\/avris.it\/image\/avris-lite_small.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 class=\u0022border-bottom\u0022 width=\u0022480\u0022 height=\u0022360.24144869215\u0022\u003E\u003C\/span\u003E\n                \n            \u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EI \u003Ca href=\u0022\/blog\/reducing-website-size-by-a-half-by-optimising-bootstrap-and-fontawesome\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-computer-speaker\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E strive to optimise\u003C\/a\u003E\nthis blog\u0027s performance as well as I can. But chasing a goal of a lightweight website while keeping it \u003Cem\u003Epretty\u003C\/em\u003E\nprevented me from realising the obvious truth that the most performant assets are\u2026 \u003Cem\u003Eno assets\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003ESo, inspired by \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Sijmen J. Mulder\u0027s directory of text-only websites\u003C\/a\u003E,\nI decided to create a bare version of my blog.\u003C\/p\u003E\n\u003Cp\u003EHere\u0027s how it went:\u003C\/p\u003E\u003Csvg xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022 style=\u0022display: none;\u0022\u003E\u003C\/svg\u003E","content":"\u003Cfigure\u003E\n                \u003Cnoscript\u003E\n                    \u003Cimg src=\u0022https:\/\/avris.it\/image\/avris-lite_big.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 class=\u0022border\u0022 width=\u0022960\u0022 height=\u0022720.48289738431\u0022\u003E                \n                \u003C\/noscript\u003E\n                \u003Cspan class=\u0022hide-noscript\u0022\u003E\u003Cimg src=\u0022data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAbCAYAAAAULC3gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADUElEQVRIia2X227iVhSGv33wITYk0DiJWk07TaW0j9CX6Bv3Eare9qbNaJTOKJNJBoIxYOx96EUEDQQ7DPBLFtbm996f19qHZeGc80IIvPes\/65LCAHwwrPevs+9XjRsGvzP36\/5cjumLCp+\/e1nLn7ovfBsAt9Hwq\/1+JzaGoezDgAVKKR8Cd\/0xrt6dBvtuMiZzWZUVYXWmkAH1LlCKoGpHKffdTnqhlu9+bZqBer1emgZ8PHDI53+EelZQnoRr3gOnTL5mkEIgY4EOpR8uS2Yz+qDArwKtJ7ftJvw5pdThuMO\/96dUEwUzvlG\/8GBNslaS13k2OKBv\/54YF4elGFFL1bZuoyxPNwbZlPN2bkk7TRH5RCrTHrvabucc0wnHmPg\/Tu3fHjT1fTf8\/bXPI0b40LOOrpJyejzkONIA9lXz5umqGzy6NeWbV3XTKcT0n7E+Zs+zjm89wwGA5IkIU3TraG2Am+bQ9ZanHNbDfg10lo3Rqw1Qvf39xRFwduzOe8+aZRShGFIVVU457i6utoZqmnc1ggVRQGAlBJrLUEQYK1FCIG1Fu89Simccwgh6HQ6OwMu1Boh5xx5nhNFEUIIRqPR08TTGmMMcRxTluUSdtv51ArUNvuvr6+5ubkhTVPSNCXLsr3StI2Ee34OrOl5AbZIy+JeSrmxqNv3KGk97fM85+7uDmmnVO4UY+copZhOZpxmHbyv0VpTliUnJydorcmy7HBA6xVgVVUopRmOAiZFhRCKIFBU85i040gShfeeXq9HXdfLKwiCnYFWUraxJPWe\/OMHHscxSitMbRECemcpx1myfO7J6hv72dbTCjQcDsnzp6oxjmKqukIICIIQKeVTexyv7EtSyo0fC01A655WIOcctXGMHnKmQ0OcAMy5H31LHENVwcUFnHzj0Vr\/3+k+QG0b42Aw4NOjISBnVhiSJMEzx9SgVYhUhqMwQYWK0egR7z2Xl5eE4e51tm5auovSQ9mCf94\/Ms+P6PU93eOau1tNp2v4\/q2kdhXzqUNrzfn5+XJCHyRlm2Rqw+e\/hwxMnzD0\/PjTk31xQC72pOeD7qoVIGMM1toVw3A4ZDKZMB6PiaKIsizRWhNF0dJrrSXLMvr9\/l4wQRAgpeQ\/IlqSidy6tlkAAAAASUVORK5CYII=\u0022 data-src=\u0022https:\/\/avris.it\/image\/avris-lite_big.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 class=\u0022border\u0022 width=\u0022960\u0022 height=\u0022720.48289738431\u0022\u003E\u003C\/span\u003E\n                \n            \u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EI \u003Ca href=\u0022\/blog\/reducing-website-size-by-a-half-by-optimising-bootstrap-and-fontawesome\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-computer-speaker\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E strive to optimise\u003C\/a\u003E\nthis blog\u0027s performance as well as I can. But chasing a goal of a lightweight website while keeping it \u003Cem\u003Epretty\u003C\/em\u003E\nprevented me from realising the obvious truth that the most performant assets are\u2026 \u003Cem\u003Eno assets\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003ESo, inspired by \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Sijmen J. Mulder\u0027s directory of text-only websites\u003C\/a\u003E,\nI decided to create a bare version of my blog.\u003C\/p\u003E\n\u003Cp\u003EHere\u0027s how it went:\u003C\/p\u003E\n\u003Cp\u003EMany pages of this blog are already available in multiple formats, eg. \u003Ca href=\u0022\/posts.atom\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E  the Atom feed of all entries\u003C\/a\u003E\nor \u003Ca href=\u0022\/projects.json\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E a JSON version of the list of my projects\u003C\/a\u003E,\nso adding a new one, \u003Ccode\u003E.lite\u003C\/code\u003E, was relatively easy.\u003C\/p\u003E\n\u003Cp\u003EThe main part was copy-pasting all \u003Ccode\u003E\u0026lt;page-type\u0026gt;.html.twig\u003C\/code\u003E files to \u003Ccode\u003E\u0026lt;page-type\u0026gt;.lite.twig\u003C\/code\u003E\nand removing all the bullshit from them. All the HTML nodes that exist solely to make the page look nicer:\nwrappers, containers, columns, etc. All the icons, fonts, logos, twemoji, everything that\u0027s not essential.\u003C\/p\u003E\n\u003Cp\u003EThere\u0027s no JavaScript loaded whatsoever.\u003C\/p\u003E\n\u003Cp\u003EThere\u0027s no external stylesheets loaded, just some minimal\nstyling in \u003Ccode\u003E\u0026lt;style\u0026gt;\u003C\/code\u003E tag and few inline \u003Ccode\u003Estyle\u003C\/code\u003E attributes.\u003C\/p\u003E\n\u003Cp\u003EImages inside articles had to stay, becuase in many cases they are a very important part of the content, and not just decoration.\nBut I made them way smaller \u2013 max 240px in width \u2013 and linked to open a bigger version, if necessary.\nI also replaced the JS-based lazy loading with HTML5 native \u003Ccode\u003Eloading=\u0022lazy\u0022\u003C\/code\u003E.\u003C\/p\u003E\n\u003Cp\u003EHowever, the browser support for this feature is still not perfect \u2013 and if it doesn\u0027t work on someone\u0027s machine,\nthey\u0027ll have to download 8 MB (!) of tiny images when visiting \u003Ccode\u003E\/blog.lite\u003C\/code\u003E\u2026\nSo I implemented a simple pagination, all inside a Twig template, based on \u003Ccode\u003E?after=\u0026lt;timestamp\u0026gt;\u003C\/code\u003E parameter in the query string.\u003C\/p\u003E\n\u003Cp\u003EAnyways\u2026 It\u0027s time for the results! \ud83e\udd41\u003C\/p\u003E\n\u003Cp\u003ENormally, opening the the homepage makes 40 requests and loads 522 kB of resources.\nIn the lite version, it\u0027s 2 requests (HTML and favicon) that weight just 15.8 kB.\nJust \u003Cstrong\u003E3%\u003C\/strong\u003E of the original weight!\u003C\/p\u003E\n\u003Cp\u003EThe heaviest page, \u003Ccode\u003E\/blog\u003C\/code\u003E makes 37 requests of 3.5 MB.\nIn the lite version, it\u0027s 10 requests of 198 kB.\nJust \u003Cstrong\u003E6%\u003C\/strong\u003E of the original weight.\u003C\/p\u003E\n\u003Cp\u003EOpening a random article made 34 requests of 493 kB normally,\nand just 3 requests of 31.2 kB in the lite version.\nAlso just \u003Cstrong\u003E6%\u003C\/strong\u003E of the original weight.\u003C\/p\u003E\n\u003Cp\u003EThe differences are huuuuuuuge!\u003C\/p\u003E\n\u003Cp\u003ESumming up: if you don\u0027t mind websites looking ascetic in return for loading quicker, working smoother,\nand sparing data plan and battery,\ndefinitely check out \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Sijmen\u0027s directory\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EAnd on my blog you can just head to \u003Ca href=\u0022\/lite\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E \/lite\u003C\/a\u003E or add \u003Ccode\u003E.lite\u003C\/code\u003E at the end of any subpage. \ud83d\ude09\u003C\/p\u003E\u003Csvg xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022 style=\u0022display: none;\u0022\u003E\u003C\/svg\u003E","tags":["web development","development","programming","optimisation","light","text","html"],"hasMore":true,"image":"https:\/\/avris.it\/image\/avris-lite_small.png","introLite":"\u003Cfigure\u003E\u003Ca href=\u0022https:\/\/avris.it\/image\/avris-lite_big.png\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Cimg src=\u0022https:\/\/avris.it\/image\/avris-lite_mini.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 width=\u0022240\u0022 height=\u0022180.12072434608\u0022 loading=\u0022lazy\u0022\u003E\u003C\/a\u003E\u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EI \u003Ca href=\u0022\/blog\/reducing-website-size-by-a-half-by-optimising-bootstrap-and-fontawesome.lite\u0022\u003E strive to optimise\u003C\/a\u003E\nthis blog\u0027s performance as well as I can. But chasing a goal of a lightweight website while keeping it \u003Cem\u003Epretty\u003C\/em\u003E\nprevented me from realising the obvious truth that the most performant assets are\u2026 \u003Cem\u003Eno assets\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003ESo, inspired by \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Sijmen J. Mulder\u0027s directory of text-only websites\u003C\/a\u003E,\nI decided to create a bare version of my blog.\u003C\/p\u003E\n\u003Cp\u003EHere\u0027s how it went:\u003C\/p\u003E","contentLite":"\u003Cfigure\u003E\u003Ca href=\u0022https:\/\/avris.it\/image\/avris-lite_big.png\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Cimg src=\u0022https:\/\/avris.it\/image\/avris-lite_mini.png\u0022 alt=\u0022Screenshot of the lite version of this blog\u0022 width=\u0022240\u0022 height=\u0022180.12072434608\u0022 loading=\u0022lazy\u0022\u003E\u003C\/a\u003E\u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EI \u003Ca href=\u0022\/blog\/reducing-website-size-by-a-half-by-optimising-bootstrap-and-fontawesome.lite\u0022\u003E strive to optimise\u003C\/a\u003E\nthis blog\u0027s performance as well as I can. But chasing a goal of a lightweight website while keeping it \u003Cem\u003Epretty\u003C\/em\u003E\nprevented me from realising the obvious truth that the most performant assets are\u2026 \u003Cem\u003Eno assets\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003ESo, inspired by \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Sijmen J. Mulder\u0027s directory of text-only websites\u003C\/a\u003E,\nI decided to create a bare version of my blog.\u003C\/p\u003E\n\u003Cp\u003EHere\u0027s how it went:\u003C\/p\u003E\n\u003Cp\u003EMany pages of this blog are already available in multiple formats, eg. \u003Ca href=\u0022\/posts.atom\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E  the Atom feed of all entries\u003C\/a\u003E\nor \u003Ca href=\u0022\/projects.json\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E a JSON version of the list of my projects\u003C\/a\u003E,\nso adding a new one, \u003Ccode\u003E.lite\u003C\/code\u003E, was relatively easy.\u003C\/p\u003E\n\u003Cp\u003EThe main part was copy-pasting all \u003Ccode\u003E\u0026lt;page-type\u0026gt;.html.twig\u003C\/code\u003E files to \u003Ccode\u003E\u0026lt;page-type\u0026gt;.lite.twig\u003C\/code\u003E\nand removing all the bullshit from them. All the HTML nodes that exist solely to make the page look nicer:\nwrappers, containers, columns, etc. All the icons, fonts, logos, twemoji, everything that\u0027s not essential.\u003C\/p\u003E\n\u003Cp\u003EThere\u0027s no JavaScript loaded whatsoever.\u003C\/p\u003E\n\u003Cp\u003EThere\u0027s no external stylesheets loaded, just some minimal\nstyling in \u003Ccode\u003E\u0026lt;style\u0026gt;\u003C\/code\u003E tag and few inline \u003Ccode\u003Estyle\u003C\/code\u003E attributes.\u003C\/p\u003E\n\u003Cp\u003EImages inside articles had to stay, becuase in many cases they are a very important part of the content, and not just decoration.\nBut I made them way smaller \u2013 max 240px in width \u2013 and linked to open a bigger version, if necessary.\nI also replaced the JS-based lazy loading with HTML5 native \u003Ccode\u003Eloading=\u0022lazy\u0022\u003C\/code\u003E.\u003C\/p\u003E\n\u003Cp\u003EHowever, the browser support for this feature is still not perfect \u2013 and if it doesn\u0027t work on someone\u0027s machine,\nthey\u0027ll have to download 8 MB (!) of tiny images when visiting \u003Ccode\u003E\/blog.lite\u003C\/code\u003E\u2026\nSo I implemented a simple pagination, all inside a Twig template, based on \u003Ccode\u003E?after=\u0026lt;timestamp\u0026gt;\u003C\/code\u003E parameter in the query string.\u003C\/p\u003E\n\u003Cp\u003EAnyways\u2026 It\u0027s time for the results! \ud83e\udd41\u003C\/p\u003E\n\u003Cp\u003ENormally, opening the the homepage makes 40 requests and loads 522 kB of resources.\nIn the lite version, it\u0027s 2 requests (HTML and favicon) that weight just 15.8 kB.\nJust \u003Cstrong\u003E3%\u003C\/strong\u003E of the original weight!\u003C\/p\u003E\n\u003Cp\u003EThe heaviest page, \u003Ccode\u003E\/blog\u003C\/code\u003E makes 37 requests of 3.5 MB.\nIn the lite version, it\u0027s 10 requests of 198 kB.\nJust \u003Cstrong\u003E6%\u003C\/strong\u003E of the original weight.\u003C\/p\u003E\n\u003Cp\u003EOpening a random article made 34 requests of 493 kB normally,\nand just 3 requests of 31.2 kB in the lite version.\nAlso just \u003Cstrong\u003E6%\u003C\/strong\u003E of the original weight.\u003C\/p\u003E\n\u003Cp\u003EThe differences are huuuuuuuge!\u003C\/p\u003E\n\u003Cp\u003ESumming up: if you don\u0027t mind websites looking ascetic in return for loading quicker, working smoother,\nand sparing data plan and battery,\ndefinitely check out \u003Ca href=\u0022https:\/\/sjmulder.nl\/en\/textonly.html\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Sijmen\u0027s directory\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EAnd on my blog you can just head to \u003Ca href=\u0022\/lite\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E \/lite\u003C\/a\u003E or add \u003Ccode\u003E.lite\u003C\/code\u003E at the end of any subpage. \ud83d\ude09\u003C\/p\u003E","words":414,"readTime":2,"lang":"en"}}},"blog\/technology\/passwords-are-pass\u00e9":{"key":"blog\/technology\/passwords-are-pass\u00e9","type":"article","published":true,"meta":{"createdAt":"2020-04-18T11:09:31+02:00","publishedAt":"2020-04-18T11:09:31+02:00","group":null,"category":"blog","subcategory":"technology","slug":"passwords-are-pass\u00e9"},"content":{"en":{"slug":"passwords-are-pass\u00e9","title":"Passwords are pass\u00e9","intro":"\u003Cfigure\u003E\n                \u003Cnoscript\u003E\n                    \u003Cimg src=\u0022https:\/\/avris.it\/image\/password_small.png\u0022 alt=\u0022\u0022 class=\u0022border-bottom\u0022 width=\u0022480\u0022 height=\u0022267.47720364742\u0022\u003E                \n                \u003C\/noscript\u003E\n                \u003Cspan class=\u0022hide-noscript\u0022\u003E\u003Cimg src=\u0022data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAUCAYAAADlep81AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEfUlEQVRIiWWWW48bRRCFv+rpsb0X7zVxQBCCEq3ywAsSvPA\/eOcv8jcQDyACPLBaIBIJIdlbkvXaY8\/04aF6Lt6sZO+4unvq1KmqU22z4z0BWP4yDMywbOvtwswA4Sbf44tqd+bV\/O3\/\/Jf69WxG3VO\/N3Zg2pdjmMBMBMsW61fpgAxOqt\/g2AwNzgn5goyEMiL3pQE8ZESkfHIIRIQBC6aWuQ9ZG0bnoAwJhiYN2AsZv6TNczmauMGNQWF+POS0hcFzH5fbO4cdE5kPu5sa\/0oZXCJl\/zZMGghilyaDkGMpMApEYeaA8PQNowwZWOe8Y8XusJM\/5oAaeb0lhJnugIJo1kbsTgtgZL4QEdG80MIg6gIoMpoENEDKDvtdPasig8FY5UDq3Ad30xv9oDBEgTE2mJiYGIyASbAOIIi1YGRGzN7WgkpuTwMoLYtgBIMacStnBCDlgjYTlnpQkQzG\/AfbBscBjkJgHGAaAscxMC0CK4nLJjENgdK8thZJvKkbKnmKk0QSjIMRMGrEYQjEYJxWNS+VPNUYarsud6fAA20\/0WAHcVKWPB6X7MXAozLyxb1DSjMu5zdcKDErCiSYbk24Xlb8eP2ehPHZZMxKiavVmkeTMaNQsAzGbH\/K3vER3\/\/0Oz\/cVvxVNzSCBnWsNub5i5lVryM5qINgfPv4E47GI+rLtxx88xXvX\/zHyT8vOPl4RrFYwv4+abrLvUVF+cszFnXi6ddfcrOzTfj5GdMHM4oHM1gu4fwKHj3ku9UKfjvl6mbJrcRKUOPdbXJFil3VGSTECpinhsvr91STMbGq2H83Z1oUrJOw0YiUoDzcJ518TvPqnI\/+2OK1FYxm9zi6mbMWWFFADLBak6oloWkod3aYFgXlICvuX0gBEFHKLZnRVoKrRlRbY84vrrAmoVdveFivuF4uOSxLqGt09px4\/5jm9E\/ezOdMDg64PXvOi7O\/OZ\/PeQocGLw9v+D5y1dsXVwxOdjj19uKd8mboMFVfDhubHY4VWHe1iViJxgPAjwpA7tZUT8dldwvC8zEk+0Ju7HgZlWzHSMvlyvOFhW7RWArGOd14m1K3I8FR7Hgdd3w76omBFgn43Rd83cNc4ylRC1olLtOYLOjPbkGiYAxzqDGiG0TEzO2gzEJxsRgKxhbwQ83wDyJRfJRE81YyQs1AGbu9Da54zWwELyTUWXJaARNJ44iokTKU6utISVRAUuD0kRMojQv+IBrkGVBbCRSP\/c3xkUrmnXWqBqjFlT0upWUB6w8fbFJIgTXj2CiydSl3JJreToLWZ5z6goyZecJZV0eTibbAOUzzANY5+du3qm\/irgAu2aSBMEcSJ2Rt4ob8JSGQQHK2pdZdm8DQGw4TdllyvrTAv5gdLR0tX+po14ZoM8uv4a04zPv0fDB9US5jXsw1nWSsPbaQ9LwRiCU3xF9Q2v2O1GwNkbrDlrW9w396MnqgLT4lC9Nygy2s8EDtcFdqIcrZ2iQyBx+yi8282SYNj3bBqJsbo93I77luQcu1AHstUddMAD\/A+DnkhKGvnqaAAAAAElFTkSuQmCC\u0022 data-src=\u0022https:\/\/avris.it\/image\/password_small.png\u0022 alt=\u0022\u0022 class=\u0022border-bottom\u0022 width=\u0022480\u0022 height=\u0022267.47720364742\u0022\u003E\u003C\/span\u003E\n                \n            \u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EHackers know your password. I\u0027m like 99% sure they do.\nJust go to \u003Ca href=\u0022https:\/\/haveibeenpwned.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E \u0027;--have i been pwned?\u003C\/a\u003E and enter your email(s).\nSee? Your password is as good as public.\u003C\/p\u003E\u003Csvg xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022 style=\u0022display: none;\u0022\u003E\u003C\/svg\u003E","content":"\u003Cfigure\u003E\n                \u003Cnoscript\u003E\n                    \u003Cimg src=\u0022https:\/\/avris.it\/image\/password_big.png\u0022 alt=\u0022\u0022 class=\u0022border\u0022 width=\u0022960\u0022 height=\u0022534.95440729483\u0022\u003E                \n                \u003C\/noscript\u003E\n                \u003Cspan class=\u0022hide-noscript\u0022\u003E\u003Cimg src=\u0022data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAUCAYAAADlep81AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEfUlEQVRIiWWWW48bRRCFv+rpsb0X7zVxQBCCEq3ywAsSvPA\/eOcv8jcQDyACPLBaIBIJIdlbkvXaY8\/04aF6Lt6sZO+4unvq1KmqU22z4z0BWP4yDMywbOvtwswA4Sbf44tqd+bV\/O3\/\/Jf69WxG3VO\/N3Zg2pdjmMBMBMsW61fpgAxOqt\/g2AwNzgn5goyEMiL3pQE8ZESkfHIIRIQBC6aWuQ9ZG0bnoAwJhiYN2AsZv6TNczmauMGNQWF+POS0hcFzH5fbO4cdE5kPu5sa\/0oZXCJl\/zZMGghilyaDkGMpMApEYeaA8PQNowwZWOe8Y8XusJM\/5oAaeb0lhJnugIJo1kbsTgtgZL4QEdG80MIg6gIoMpoENEDKDvtdPasig8FY5UDq3Ad30xv9oDBEgTE2mJiYGIyASbAOIIi1YGRGzN7WgkpuTwMoLYtgBIMacStnBCDlgjYTlnpQkQzG\/AfbBscBjkJgHGAaAscxMC0CK4nLJjENgdK8thZJvKkbKnmKk0QSjIMRMGrEYQjEYJxWNS+VPNUYarsud6fAA20\/0WAHcVKWPB6X7MXAozLyxb1DSjMu5zdcKDErCiSYbk24Xlb8eP2ehPHZZMxKiavVmkeTMaNQsAzGbH\/K3vER3\/\/0Oz\/cVvxVNzSCBnWsNub5i5lVryM5qINgfPv4E47GI+rLtxx88xXvX\/zHyT8vOPl4RrFYwv4+abrLvUVF+cszFnXi6ddfcrOzTfj5GdMHM4oHM1gu4fwKHj3ku9UKfjvl6mbJrcRKUOPdbXJFil3VGSTECpinhsvr91STMbGq2H83Z1oUrJOw0YiUoDzcJ518TvPqnI\/+2OK1FYxm9zi6mbMWWFFADLBak6oloWkod3aYFgXlICvuX0gBEFHKLZnRVoKrRlRbY84vrrAmoVdveFivuF4uOSxLqGt09px4\/5jm9E\/ezOdMDg64PXvOi7O\/OZ\/PeQocGLw9v+D5y1dsXVwxOdjj19uKd8mboMFVfDhubHY4VWHe1iViJxgPAjwpA7tZUT8dldwvC8zEk+0Ju7HgZlWzHSMvlyvOFhW7RWArGOd14m1K3I8FR7Hgdd3w76omBFgn43Rd83cNc4ylRC1olLtOYLOjPbkGiYAxzqDGiG0TEzO2gzEJxsRgKxhbwQ83wDyJRfJRE81YyQs1AGbu9Da54zWwELyTUWXJaARNJ44iokTKU6utISVRAUuD0kRMojQv+IBrkGVBbCRSP\/c3xkUrmnXWqBqjFlT0upWUB6w8fbFJIgTXj2CiydSl3JJreToLWZ5z6goyZecJZV0eTibbAOUzzANY5+du3qm\/irgAu2aSBMEcSJ2Rt4ob8JSGQQHK2pdZdm8DQGw4TdllyvrTAv5gdLR0tX+po14ZoM8uv4a04zPv0fDB9US5jXsw1nWSsPbaQ9LwRiCU3xF9Q2v2O1GwNkbrDlrW9w396MnqgLT4lC9Nygy2s8EDtcFdqIcrZ2iQyBx+yi8282SYNj3bBqJsbo93I77luQcu1AHstUddMAD\/A+DnkhKGvnqaAAAAAElFTkSuQmCC\u0022 data-src=\u0022https:\/\/avris.it\/image\/password_big.png\u0022 alt=\u0022\u0022 class=\u0022border\u0022 width=\u0022960\u0022 height=\u0022534.95440729483\u0022\u003E\u003C\/span\u003E\n                \u003Cfigcaption\u003E\n                    \u003Ca href=\u0022https:\/\/unsplash.com\/photos\/zEFyM4sulJ8\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\n                        \u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E\n                        unsplash.com\/photos\/zEFyM4sulJ8\n                    \u003C\/a\u003E\n                \u003C\/figcaption\u003E\n            \u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EHackers know your password. I\u0027m like 99% sure they do.\nJust go to \u003Ca href=\u0022https:\/\/haveibeenpwned.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E \u0027;--have i been pwned?\u003C\/a\u003E and enter your email(s).\nSee? Your password is as good as public.\u003C\/p\u003E\n\u003Cp\u003EWe all hate passwords, don\u0027t we? Trying to keep them easy to remember, but also hard to break,\nwhile also complying with stupid \u003Ca href=\u0022https:\/\/twitter.com\/PWTooStrong\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E arbitrary rules\u003C\/a\u003E,\nwhile having corporate forcing you to change it regularly... They\u0027re a pain in the ass.\u003C\/p\u003E\n\u003Cp\u003EThey aren\u0027t even that safe.\nHow can you be sure that the administrator of a website that you trusted with your password even hashes it?\nHow do you know they salt it? How do you know they don\u0027t use an outdated hashing algorithm?\nHow can you be sure they won\u0027t have a data breach, their database leaked, and your password recovered with supercomputers?\u003C\/p\u003E\n\u003Cp\u003EDamn, I\u0027m an administrator myself, and I still can\u0027t be sure I do everything right.\nI got a panic attack last week when a user reported that his password was stolen and used for blackmail\n(\u003Ca href=\u0022\/blog\/recognising-red-flags-in-blackmail-emails\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-computer-speaker\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Recognising red flags in blackmail emails\u003C\/a\u003E)\n\u2013 in this case it was a reused password that leaked somewhere else, but still...\nEven though I\u0027m storing people\u0027s passwords in the best way I can,\nI would feel so much better, if I just \u003Cem\u003Edidn\u0027t have to store them\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003EHow about we just \u003Cem\u003Estop using passwords\u003C\/em\u003E?\u003C\/p\u003E\n\u003Ch3\u003E1. Social login\u003C\/h3\u003E\n\u003Cp\u003EIf you log in with Facebook, Twitter, Google, Apple or whatever, you make me a happier developer.\nYes, your social media account is still protected by a password, but at least \u003Cem\u003EI don\u0027t know it\u003C\/em\u003E.\nIf anything happens to your social media account, it\u0027s gonna be a problem of a huge corporation with\nwell-funded infosec department \u2013 not a random developer who makes websites for fun and does their best keeping them safe.\u003C\/p\u003E\n\u003Ch3\u003E2. Magic links\u003C\/h3\u003E\n\u003Cp\u003EIn my first job I saw in the logs that many users use the \u201cremind password\u201d feature not as a recovery option,\nbut as their main login method. Today, their quirk is becoming an increasingly popular security trend, actually.\nIf you go, for example, to \u003Ca href=\u0022https:\/\/whereby.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Whereby\u003C\/a\u003E, they\u0027ll only ask you for your email, not a password.\nEvery time you try to log in, they\u0027ll just send you and email with a one-time code.\u003C\/p\u003E\n\u003Cp\u003EI implemented a similar approach in my new project, \u003Ca href=\u0022\/projects\/avris-booster-quick-start-of-new-projects\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-cogs\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Avris Booster: Quick start of new projects\u003C\/a\u003E (under active development).\nNow I don\u0027t need a separate \u201cregister\u201d, \u201clog in\u201d and \u201cremind password\u201d forms \u2013 I just have one.\nNow I don\u0027t keep any passwords \u2013 just some temporary codes that can\u0027t be reused on other websites.\u003C\/p\u003E\n\u003Cp\u003EAnd users don\u0027t have to worry about remembering, storing or losing their passwords.\u003C\/p\u003E\n\u003Ch3\u003E3. Multi-factor authentication\u003C\/h3\u003E\n\u003Cp\u003EWhatever authentication method you use (or are forced to use), it\u0027s always better to have a second one.\nIf a website offers MFA, it\u0027s smart set it up (I can strongly recommend the \u003Ca href=\u0022https:\/\/authy.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Authy\u003C\/a\u003E app for it).\u003C\/p\u003E\n\u003Cp\u003EThis way, even if your password gets stolen, the hackers will still need more (your phone) to access your account.\u003C\/p\u003E\n\u003Ch3\u003E4. Other options\u003C\/h3\u003E\n\u003Cp\u003EThere\u0027s also such a thing as \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/Hardware_security_module\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E Hardware Security Modules\u003C\/a\u003E.\nSome websites offer login with \u003Ca href=\u0022https:\/\/www.openpgp.org\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E PGP keys\u003C\/a\u003E.\nAnd there\u0027s probably a lot more options, but no time to dive into them right now.\u003C\/p\u003E\n\u003Ch3\u003E5. Password managers\u003C\/h3\u003E\n\u003Cp\u003ELet\u0027s face it, passwords are still inevitable. Until webmasters stop being so password-centric,\nwe have to keep using passwords, if we want to keep using their products.\u003C\/p\u003E\n\u003Cp\u003EThe best we can do in this situation, is to make sure that all of our passwords are strong and unique\n(so that a hacker who found out our Spotify password can\u0027t use it to log in to our bank or email).\nOf course, nobody can remember tens or hundreds of strong, unique password. That\u0027s why we have password managers.\nI can strongly recommend \u003Ca href=\u0022https:\/\/keepass.info\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csvg class=\u0022icon\u0022\u003E\u003Cuse xlink:href=\u0022#light-link\u0022\u003E\u003C\/use\u003E\u003C\/svg\u003E KeePass\u003C\/a\u003E. Or even saving the passwords in the browser.\u003C\/p\u003E\n\u003Cp\u003ESeriously, anything is better than using the same password for some shady forum as you use for your online banking.\u003C\/p\u003E\u003Csvg xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022 style=\u0022display: none;\u0022\u003E\u003C\/svg\u003E","tags":["password","security","magic link","development","programming","hackers","hacking"],"hasMore":true,"image":"https:\/\/avris.it\/image\/password_small.png","introLite":"\u003Cfigure\u003E\u003Ca href=\u0022https:\/\/avris.it\/image\/password_big.png\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Cimg src=\u0022https:\/\/avris.it\/image\/password_mini.png\u0022 alt=\u0022\u0022 width=\u0022240\u0022 height=\u0022133.73860182371\u0022 loading=\u0022lazy\u0022\u003E\u003C\/a\u003E\u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EHackers know your password. I\u0027m like 99% sure they do.\nJust go to \u003Ca href=\u0022https:\/\/haveibeenpwned.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E \u0027;--have i been pwned?\u003C\/a\u003E and enter your email(s).\nSee? Your password is as good as public.\u003C\/p\u003E","contentLite":"\u003Cfigure\u003E\u003Ca href=\u0022https:\/\/avris.it\/image\/password_big.png\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Cimg src=\u0022https:\/\/avris.it\/image\/password_mini.png\u0022 alt=\u0022\u0022 width=\u0022240\u0022 height=\u0022133.73860182371\u0022 loading=\u0022lazy\u0022\u003E\u003C\/a\u003E\u003Cfigcaption\u003E\n                    \u003Ca href=\u0022https:\/\/unsplash.com\/photos\/zEFyM4sulJ8\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E\u003Csmall\u003Eunsplash.com\/photos\/zEFyM4sulJ8\u003C\/small\u003E\u003C\/a\u003E\n                \u003C\/figcaption\u003E\u003C\/figure\u003E\u003C\/p\u003E\n\u003Cp\u003EHackers know your password. I\u0027m like 99% sure they do.\nJust go to \u003Ca href=\u0022https:\/\/haveibeenpwned.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E \u0027;--have i been pwned?\u003C\/a\u003E and enter your email(s).\nSee? Your password is as good as public.\u003C\/p\u003E\n\u003Cp\u003EWe all hate passwords, don\u0027t we? Trying to keep them easy to remember, but also hard to break,\nwhile also complying with stupid \u003Ca href=\u0022https:\/\/twitter.com\/PWTooStrong\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E arbitrary rules\u003C\/a\u003E,\nwhile having corporate forcing you to change it regularly... They\u0027re a pain in the ass.\u003C\/p\u003E\n\u003Cp\u003EThey aren\u0027t even that safe.\nHow can you be sure that the administrator of a website that you trusted with your password even hashes it?\nHow do you know they salt it? How do you know they don\u0027t use an outdated hashing algorithm?\nHow can you be sure they won\u0027t have a data breach, their database leaked, and your password recovered with supercomputers?\u003C\/p\u003E\n\u003Cp\u003EDamn, I\u0027m an administrator myself, and I still can\u0027t be sure I do everything right.\nI got a panic attack last week when a user reported that his password was stolen and used for blackmail\n(\u003Ca href=\u0022\/blog\/recognising-red-flags-in-blackmail-emails.lite\u0022\u003E Recognising red flags in blackmail emails\u003C\/a\u003E)\n\u2013 in this case it was a reused password that leaked somewhere else, but still...\nEven though I\u0027m storing people\u0027s passwords in the best way I can,\nI would feel so much better, if I just \u003Cem\u003Edidn\u0027t have to store them\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003EHow about we just \u003Cem\u003Estop using passwords\u003C\/em\u003E?\u003C\/p\u003E\n\u003Ch3\u003E1. Social login\u003C\/h3\u003E\n\u003Cp\u003EIf you log in with Facebook, Twitter, Google, Apple or whatever, you make me a happier developer.\nYes, your social media account is still protected by a password, but at least \u003Cem\u003EI don\u0027t know it\u003C\/em\u003E.\nIf anything happens to your social media account, it\u0027s gonna be a problem of a huge corporation with\nwell-funded infosec department \u2013 not a random developer who makes websites for fun and does their best keeping them safe.\u003C\/p\u003E\n\u003Ch3\u003E2. Magic links\u003C\/h3\u003E\n\u003Cp\u003EIn my first job I saw in the logs that many users use the \u201cremind password\u201d feature not as a recovery option,\nbut as their main login method. Today, their quirk is becoming an increasingly popular security trend, actually.\nIf you go, for example, to \u003Ca href=\u0022https:\/\/whereby.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Whereby\u003C\/a\u003E, they\u0027ll only ask you for your email, not a password.\nEvery time you try to log in, they\u0027ll just send you and email with a one-time code.\u003C\/p\u003E\n\u003Cp\u003EI implemented a similar approach in my new project, \u003Ca href=\u0022\/projects\/avris-booster-quick-start-of-new-projects.lite\u0022\u003E Avris Booster: Quick start of new projects\u003C\/a\u003E (under active development).\nNow I don\u0027t need a separate \u201cregister\u201d, \u201clog in\u201d and \u201cremind password\u201d forms \u2013 I just have one.\nNow I don\u0027t keep any passwords \u2013 just some temporary codes that can\u0027t be reused on other websites.\u003C\/p\u003E\n\u003Cp\u003EAnd users don\u0027t have to worry about remembering, storing or losing their passwords.\u003C\/p\u003E\n\u003Ch3\u003E3. Multi-factor authentication\u003C\/h3\u003E\n\u003Cp\u003EWhatever authentication method you use (or are forced to use), it\u0027s always better to have a second one.\nIf a website offers MFA, it\u0027s smart set it up (I can strongly recommend the \u003Ca href=\u0022https:\/\/authy.com\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Authy\u003C\/a\u003E app for it).\u003C\/p\u003E\n\u003Cp\u003EThis way, even if your password gets stolen, the hackers will still need more (your phone) to access your account.\u003C\/p\u003E\n\u003Ch3\u003E4. Other options\u003C\/h3\u003E\n\u003Cp\u003EThere\u0027s also such a thing as \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/Hardware_security_module\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E Hardware Security Modules\u003C\/a\u003E.\nSome websites offer login with \u003Ca href=\u0022https:\/\/www.openpgp.org\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E PGP keys\u003C\/a\u003E.\nAnd there\u0027s probably a lot more options, but no time to dive into them right now.\u003C\/p\u003E\n\u003Ch3\u003E5. Password managers\u003C\/h3\u003E\n\u003Cp\u003ELet\u0027s face it, passwords are still inevitable. Until webmasters stop being so password-centric,\nwe have to keep using passwords, if we want to keep using their products.\u003C\/p\u003E\n\u003Cp\u003EThe best we can do in this situation, is to make sure that all of our passwords are strong and unique\n(so that a hacker who found out our Spotify password can\u0027t use it to log in to our bank or email).\nOf course, nobody can remember tens or hundreds of strong, unique password. That\u0027s why we have password managers.\nI can strongly recommend \u003Ca href=\u0022https:\/\/keepass.info\/\u0022 target=\u0022_blank\u0022 rel=\u0022noopener\u0022\u003E KeePass\u003C\/a\u003E. Or even saving the passwords in the browser.\u003C\/p\u003E\n\u003Cp\u003ESeriously, anything is better than using the same password for some shady forum as you use for your online banking.\u003C\/p\u003E","words":656,"readTime":3,"lang":"en"}}}}}