Projects STRLCPY link-lock Commits 009a0b96
🤬
  • Add about, uses, and disclaimer to README

    Also add a button to the "incorrect password" page that leads to the main Link
    Lock page.
  • Loading...
  • Jacob Strieb committed 4 years ago
    009a0b96
    1 parent cae24747
  • ■ ■ ■ ■ ■ ■
    README.md
    skipped 8 lines
    9 9   
    10 10  Link Lock is a tool for encrypting and decrypting URLs. When a user visits an
    11 11  encrypted URL, they will be prompted for the password. If the password is
    12  -correct, Link Lock decrypts the original URL and redirects them. Otherwise, an
    13  -error is displayed.
     12 +correct, Link Lock decrypts the original URL and redirects there. Otherwise, an
     13 +error is displayed. If a hint is added, it is displayed right above the
     14 +password prompt.
     15 + 
     16 +Link Lock has many uses:
     17 + 
     18 +- Store private bookmarks on a shared computer
     19 +- Encrypt entire web pages (via [URL
     20 + Pages](https://github.com/jstrieb/urlpages))
     21 +- Send sensitive links over public or insecure channels (e.g., posting links
     22 + to a public website that require a password to access)
     23 +- Simple CAPTCHAs – particularly effective against basic web scrapers that do
     24 + not respect `robots.txt`
     25 +- Add a password to shared Dropbox or Google Drive links
    14 26   
    15 27   
    16 28   
    skipped 2 lines
    19 31  - [Regular link encryption](https://jstrieb.github.io/link-lock/#eyJ2IjoiMC4wLjEiLCJlIjoiRkVJR0FzdE53NXFzM1N1N0pVQUtlOEJpWWtYWERaU012WmFDdWxZYWo2eFJzY2lDRGJXd3VZRmFkdVpqbEN4UDN4S0lWQXRoMmJHcjhHWUciLCJoIjoiXG5QYXNzd29yZDogaGFja2VybmV3cyIsImkiOiJBOWJMZkFKbXJ1RFplWktJIn0=) - Password: hackernews
    20 32  - [Encrypt entire
    21 33   pages](https://jstrieb.github.io/link-lock/#eyJ2IjoiMC4wLjEiLCJlIjoiRXQ4M1gxbktlM0hyRTNVM2pZaUl0Q2c1WGFWeGNVbW1WMkpSYkxZWDlSc0RVcVM1MWZTNllYSUZGOUdxN0JKdEJxdWYwanh4d1JEWnQxMno4QTh4a2VBM3p4eXpPTis3N0o0c0NqanJhYkNwYnBuQW5mRW5aWktRZzk0ZmVVVHlPczhPWmNUdllPcVZCQ3ZqckQvQmxqRUhvWC9pazZDWm1hbTZNc3U4dDA4VGp4UXU5V3NUNFV3MHJpZTRsQXBmYmg3ZVk5Z1l2TVljcXhFVE55UEdoOW12b0RDcE1jdDVVN0NLUlJtSnlqbERtM2UvaVZuK3BWOURGYytPY0gvUk9WTlpzVXhWbkt2UHNwNmNiMFFrM21aazhkblppSmdKKy9pM3VNd1VzcmRjRmljRnFINlR5SUNVLzZNbk8rS1VzTG5oMTR4NTdIMDJ5N0xPN0hwckZuUTd5N3lCajg4Q29MNkZsa083TGZ1c25iSFBNYUdmM3R0RTRaMVprc0VLdkUrOWQxYlEwdUFRVnNOVzNyc0ptcyt4aWxNZll6QnJlNmZBRlRRRUo3c01RbndBcGZFU2J4TFFpVXRjRXVKOTc2cHdneHhpTExtTzY1N0o4MWsrT3phenJLbjZUNGUvN2VqMlBQd2lBUDIwdWFIM0lYc1gyOGZMUDdYM0NCM0drQ3o4OGRFVXo0b3Ara0dISDBSTnJ4cVpkRlpEU21TN2l2SzNQU1kzMTcrdnA1MWRjYmNVeHNrSTcwVUhULzBCYzBQVTFxRG8yeEdXbDdzQnZpM084S0Z0a0FqYVpFM01MV3VMTkt0cUNhN2xRc2RsQWdxTEtGU1FRTmYvVFVHNlFuN1JDV1FvUGpIMnJ6RVdUL1NCQXl6N3Bma2RZc0szV21mRW03engyQzFOOXB3dWU0NWRWUHFRYUpCTnlyU29uYUQ5eW1OVGI4UWJ6NGh5bW9yMlgxL290RytlbWtwVUtDSzBTREtDQ29ZbkZDcnBmb2JqV09Qa21WRmw1N3Rza0VVWXlpVXhBZklyZ01sY29EbzdSVFU4a29YdzhhVm53NXhISFN2Tk5RYmlXdWlhUWNqVG1RZFV2N2VjSVVxUzM2UHFMeFdYU3RFdFRZeEQzQlFVSzQvcnZIQUMyeFRqOG9zS2xwSWN4QjJsanZ3cWVLcHJDeU1KdVViK1IvcHFIMHhSZ0lySGdkNFNINkxkQ3RURWN5L2JEUkxWN1JnK2QwdzlTUkxPUm1xNU5kUlU5bHNrUDFBUUtua3ByQi9RZ2pra1V4OFRqQWN1NGV0b3B5d2t1TE5JbEREVDdVWGZLYTRWTHd4RFlGR0xheXFTMk0xS05BN3ZtWGFoRUlBSXQzSlN5N3pMbDNkZEFDUXhRRTl0SWFCNUUycWxJMForaHFzLzZqOUQ0alVvdmpHUmRDTUZ4QVdoZ2ZYZktyUDRJUmpPZEMwK2N1UTF6WjR2RUZMTWJxOXRrczZQVVVvT3QvbGlzcG5mWUE3d2szVjJ6dHFvN0pDUGhSMldwUXRqVGhyQnJ3ZzhwZnd0SUNRa2pHc1JOV2JpeHQrSThHQ0dtYm9xcXQ4SElWOEk4SE8zNkhSQVRzU2p0SE5sbW55ZjRSVHk5MHpLM1JCK3pnUDZyMnY0dCtueU5pQk5hejhheGR5eEtSUHNDYmNvMXdjTjBSa3QyUFNUWEt1cmVYWjArVmFKaWQxeTFVRExMUUgvNGN1MkJ3eVBPT0FKZUFDekxLZnhvbkJ0ekY1ZkNqQ1ZiT2I2a0pVYUpHTUpoWERQWXBRanBYTERTdCt1Z0Vzd3JtbCs0Z1RuejY0Rm5oL0V3L3ZYb0xHdnYvNnpydFhSUlkwdFZseGZhZ0MzbEZ4Rkw1WFJVYnNrY3krc0Fac1NaY0JnT2tTUjh2UW8vNkw2ZWJEVlBFdmkySzA0ejFKM1VDRHdZTElKM2VOMjB2S05wRllNb1gvM0c2TERJM0R0V09NR2JLZXVSRERyOTdIMVd2KzBiWHFZZ0htdVp5R2NmUkFSdmx3eGRGVFpSQ1BQZU1lWUI1eXlXY3ZSRFlYTlRFR05Qcjg4KzI4Mi8xRlBEWE5xODFtZmMwdU13TXo0QUNvdEd1YlVkalcyNng1Mmh4dEE2SEhxaDdIb3V1Nk4xNytRb3k5bnFRY0tLVjZySk1iZStoaGtKWXlBOU5uZ0k2ZTY4dlU5T1hiZC9DYitVd0E2UVdKQlUyWUpjN0RhaTY3TEFycmtKeUdxUFM5NUdRZmtsUFlpV3JwWjhuRlB2QmY4QTYzN1REekJVU3V1OHlZSXRWencxa05lTkk2ckZjY2xZdz09IiwiaSI6IkdjcGVDUzJ6OUF2MXhtQXYifQ==) - Password: urlpage5
     34 +- [Use as a simple
     35 + CAPTCHA](https://jstrieb.github.io/link-lock/#eyJ2IjoiMC4wLjEiLCJlIjoiZEx3Yi9CNitlK0ZjM1B3ZURrbUY2NjdQWFlIV1dsS3dpclhvZmkvRXBFTXU0ZERlVkJuSmUrN1loS2JxQ3RrPSIsImgiOiIxICsgMSA9ID8iLCJpIjoiRDJYd1MyK1EzaHpuUDV1NyJ9)
    22 36  - [Emoji support](https://jstrieb.github.io/link-lock/#eyJ2IjoiMC4wLjEiLCJlIjoiakZUZDF5REdIeWtXZHQxWWVOUHB0dE9XWWxudm16MlpsZ3NMUkk1YWt5UndzVGNqcEZoNmd0QU1BQlZEcy9tLy9tY3kyOWZNR3BIMjd2dXkwbENOSG1TdWNySmJpUzkwODV2bHEydEJ0OWhGeGY0ckYwT09oa2szelRNVWpjRndRSVZwM2JYODFJTElOdkxqcGUrWXpsY3QwZXIvUnkwSy9DT0tTRGpsUnIxSHlpTTQzU3plMGZUOXJmTGFlem9jYnM1TGVXV2EiLCJoIjoiXG5QYXNzd29yZDog8J+lkSIsImkiOiJLQnJhQXV0eVU1S3RzUlFjIn0=) - Password: 🥑
    23 37  - [Riddles in the dark](https://jstrieb.github.io/link-lock/#eyJ2IjoiMC4wLjEiLCJlIjoiYkV5TzZDZ0VwVXZOU2xucWZiQlo3YUdYa1pSL1lub00vekJNaTBMS1VQRXVicktJQTBhS00zNkNEK0tDWXYxd3l0L2dxWTFMS0NPQnFLTldSSEpsYXVodEQ4L0dKVkU3eTFnb2JZalRmcXFtWmpRQTlVMmNhL3dJb2JvMk5DdENnWTZYMHE5MHJzZDk1L0Z6K2orNGlYSHJBa2htN01kL2pJRnNIeDIwZlNVTEFadUpyNjF6TTRucS9nQTZNcW9OS1VKaUxpSWdEakdUd0dhRmdER29OdHJ5Kzd1cUtVbW1BbWQvbWlISERqRDY3bjRtSDA5eWtndlIyVnkzanRsdU44S0puMWdkYWlTeGQvWVhXcUR2WUhrMWIzOVFlSnlIYUV5Q3ZlQkJoQ1RzZDVJbG1obU45WjB0UTdoYUpGVUl1R2hxOTNrOC82MDhpbUxKR0p0M1VNbHRHcEZJck9wUGJuSTlSVkg4WGhwVFh5aEc0Q0ZWajNNU1FGWHdLOXRkc1M4MGF0VGc1MXliZHBEcVIwV1dtWHJBN0hIQ1RCV253WEQ4SGR3SWZidkNmR2s2aW5ZajRHaHpjYUJ4UmV2c08xaGs0M1FmblQya0JHSHhBd0JqQkZTeVlrWCtldGlINHhVVFY3L295ZWtINWxzMmFSczZxc290RDNhS25jWDR3dm1VRUZNKzd3d3Z0UTlhUSt0NFprUWNyWmxGOFBUSVNRRmN3M0ZDMG5zREt1b2lHWWx1S044SGk1dW1QVjZvSC91ckdHSFJBd0VmWDg3VDNubzFBOHRJaEFhYURjSnBpQ2xvZERId3FYOWZmZC9US2JWVUd3a0cxMHdERGN1QUMrR3lJZUVNWExpR2VtNC9DSWNINnRRNTV1UGRZTmZ2aTVuNkU3UHZydFhOSkh5a21jdHpSUVZlSGlOeXp4TDZNY1BSSmZqLy9xZ0dWSWQ0M3Z6aFJBZDFzZHpYa1ZtREhJNFpneDBrQ3dxd05FUllLU3JTNGIwdmV3c3dOQjRVa2lIUFMwMDFpUjVCNG1hUjAvMkhhSFJnWjNMT0RFU1U4djdVNVhrUHllNC85WTZmY3BNeDdWRXg2OUYrem1GL1JsNml3bU1FYk55Ry9YQlU3bERGYXB3Uk1HUmExLzNSTWRObzFoVm5oQ08rNzRMNkxRQlNBSk04VldiZUE2bXVydG1vVHpxb2gvaWtqckxHKzFGUUVvM1lSMnhwQ1VlWVhxOXFSK2YwRGFCM3d4NFk4S0IrcmdUelhLc1JDZXBCTHRjVkhtcFV5UW4rdWswVitDZ0RCOXlPSkJFSXpYSmNnUWxHVlMyOGF4RjFmTnR4UTZkbzdiTU5xbFlqN1RvVzhaQ1NNU0JOVFU5cU92dlNESFBxTFZZOXEzYlhhc3gvZDVwRDBiTzdHTzVsdjlubm91MTZHNUpVTFRlM2IrN0I2azFpZFE3akd0VDFmOTNhUEg0bzZodWlLQXBZdVZQOVJjVHBHVlVyd3dhMzlPcFF4eFNJS2xxeW53d0xwZGxOMjJ0NUJIRm92c1IyUkZCeDhXTFA1a0tuNG9HdTJJcDVBVThDeGs4MG5GZ2VjUGIzS3RuL1lteHJqTVNVVkxmSXMyVUxmbHhqbkE5Q01aWi9ZdG0zZXpFc0VveU1wM3FZWnN1SGh4Rld2ajZXalFkUXdxRXlHY2Z6ZG94dDFvTXh1WVB3ZjF3N3JxWlR6eDVwVkptRGZ1V1VDUUxub2c5c0RqWmRKSHhZVTRadCt2NEYrRDJXdlZ1c0FZSzNJRGJZSnQzOWxSRUxXcUp4dkpaa2pHeXdSaWo1OGsvUzZtTmg0SnJaTk5hNmZFT08rcjU2U2RMcHI1dmh3enorbjFURExiWWZILzdsU0xvc0VaZk4vMFQyOFBrdlJEMlcrMnVvWm5QaVFRV2FnQXdIcmRCc0UrUjdEbFNsdnJWNmJtN0tuSlBWc2NqbXRVVlc3SXBDZ1NNMWh4QWhSZm5hRDJucGdRMmVocUhJZXFlZkpFc281WE1pVDNiWVUwRS92WVdSaHROMTJWdkwxa0k2ejA1UlR3PT0iLCJoIjoiVm9pY2VsZXNzIGl0IGNyaWVzLFxuV2luZ2xlc3MgZmx1dHRlcnMsXG5Ub290aGxlc3MgYml0ZXMsXG5Nb3V0aGxlc3MgbXV0dGVycy4iLCJpIjoiWW91TVFyMmJXRHdGMW1BVSJ9) - The password is a single, lowercase word
    24 38   
    25 39   
    26 40   
    27 41  ## Disclaimer
     42 + 
     43 +- I am a college student, not a security professional – there may be
     44 + best-practices I am not aware of.
     45 +- Once someone decrypts a link, they can share the original URL as much as they
     46 + want. Only share encrypted links with trusted people.
     47 +- I am not comfortable using JavaScript, and I don't have a firm grasp of the
     48 + nuances of the language – there may be bugs that I don't even know to check
     49 + for.
     50 +- This is the first project I have ever done using encryption – there is likely
     51 + a subtle mistake somewhere.
     52 +- Most of the encryption/decryption code is based on [MDN
     53 + tutorials](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey#PBKDF2_2)
     54 + for the `SubtleCrypto` API
    28 55   
    29 56   
    30 57   
    skipped 10 lines
  • ■ ■ ■ ■ ■
    index.html
    skipped 120 lines
    121 121   <div class="error red-border" style="display: none">
    122 122   <p id="errortext">Error</p>
    123 123   <button onclick="main()">Try again</button>
     124 + <a href="https://jstrieb.github.io/link-lock"><button>Lock a link</button></a>
    124 125   </div>
    125 126  </body>
    126 127   
    skipped 2 lines
Please wait...
Page is in error, reload to recover