Code Monkey home page Code Monkey logo

pagecrypt's Introduction

PageCrypt - Password Protect HTML

Overview

This tool lets you securely password-protect an HTML file. Unlike other password-protection tools, this tool:

  1. Has no server-side components (this tool and its password-protected pages run entirely in javascript).

  2. Uses strong encryption, so the password-protection cannot be bypassed.

For details and to use the tool, please see the Project Page.

pagecrypt's People

Contributors

delineas avatar kmsaumcis avatar maxlaumeister avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pagecrypt's Issues

incompatible with VSCode liver server

When prevising the page with Live Server for Visual Studio Code, the page doesn't work, nothing happens when submit is pressed, not even an error message, but works fine when opened directly.

Powershell Error

It seems, using the powershell-implementation gives some error when using:


######Before enabling script execution########

PS C:\Users\Desktop> .\Encrypt-StaticHTML.psl -File test..htm1 -Password �-
File C:\Users\Q782\Desktop\Encrypt-StaticHTML.p91 cannot be loaded because the execution of scripts is disabled on this system. 
Please see "get-help about_signing" for more details.
Line:1 Character:25
+ .\Encrypt-StaticHTML.psl <<<< -File test..html -Password �--1234�-�
         + Categorylnfo : NotSpecified: (:) [], PSSecurityException
         + FullyQualifiedErrorId : RuntimeException

#####After enabling script execution#######

PS C:\Users\Q?02\Desktop> .\Encrypt�StaticHTML.psi -File test.htm1 -Password �-�
Unexpected token "octicon" in Expression or Instruction.
IN C:\Users\Q702\Desktop\Encrypt-StaticHTML.p31:320 Character:28
+ <svg class="octicon <<<< octicon-sign-out u-align-middle" viewBox="0
 0 16 17" version="1.1" width="16" height="17" aria-hidden="true"><path fill-ru
le="evenodd" d="M12 9V7H8V5h4V3l4 3-4 3zm-2 3H6V3L2 1h8v3h1Vc0-.55-.45-1-1-1H1
C.45 0 0 .45 8 1v11.38c0 .39.22.73.55.91L6 16.01V13h4c.55 0 1-.45 1-1V8h-1v4z">
</path></svg>
+ Categorylnfo : ParserError: (octicon:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken

File created with pycryptodome cannot be decoded

Hi,

I've problems in decrypting an html created from the python wrapper, I'm using python 3.8 with pycryptodome on arch linux.

It turned out the issue was due to padding, because I thought pycryptodome fixed the padding issue in pycrypto. For me the problem get resolved with the following change:

diff --git a/python/encrypt.py b/python/encrypt.py
index 700f416..8e03a08 100755
--- a/python/encrypt.py
+++ b/python/encrypt.py
@@ -7,6 +7,7 @@ except:
 	exit(1)
 try:
 	from Crypto import Random
+	from Crypto.Util import Padding
 	from Crypto.Cipher import AES
 except:
 	print("install pycrypto: \"pip3 install pycrypto\"")
@@ -14,6 +15,7 @@ except:
 import os, sys
 from base64 import b64encode
 from getpass import getpass
+import codecs
 
 def main():
 	# sanitize input
@@ -42,14 +44,8 @@ def main():
 	key = PBKDF2(passphrase=passphrase,salt=salt,iterations=100).read(32)
 
 	cipher = AES.new(key, AES.MODE_CBC, IV=iv)
-	padded = data.decode("utf-8", "replace")
-	# workaround for padding issue https://github.com/dlitz/pycrypto/issues/277
-	for i in range(16):
-		try:
-			encrypted = cipher.encrypt(padded.encode("utf8"))
-			break
-		except ValueError:
-			padded += chr(0)
+	padded = Padding.pad(data,16)
+	encrypted = cipher.encrypt(padded)
 
 	projectFolder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 	with open(os.path.join(projectFolder, "decryptTemplate.html")) as f:
@@ -61,7 +57,7 @@ def main():
 
 	filename, extension = os.path.splitext(inputfile)
 	outputfile = filename + "-protected" + extension
-	with open(outputfile, 'w') as f:
+	with codecs.open(outputfile, 'w','utf-8-sig') as f:
 		f.write(encryptedDocument)
 	print("File saved to %s"%outputfile)
 

Point to separate file after authentication instead of transforming the uploaded HTML file

Hey Max,

First off fantastic work here, you've saved me the headache of learning about servers for my portfolio site.

I was wondering if it was possible to use PageCrypt but point to a separate HTML file when the password is correct. This would prevent me from having two copies of my files (Unsecured files for reference/updating/developing AND Secured files that have been uploaded/downloaded from your conversion site). Is this possible at all?

Many thanks!

Cheers,
Jordan

Can this application work with CSS only?

Not that I object to using JavaScript, and having the feature helps enforce/re-enforce the user forcibly to use JavaScript, have you thought about a CSS only version of this? Could it work with CSS only? Just curious. -rad

TypeError: Object type <class 'str'> cannot be passed to C code

Python 3.8.2 (dependencies installed) on Arch Linux 5.6.10:

# python3 encrypt.py somefile somepass
Traceback (most recent call last):
  File "encrypt.py", line 69, in <module>
    main()
  File "encrypt.py", line 49, in main
    encrypted = cipher.encrypt(padded)
  File "/usr/lib/python3.8/site-packages/Crypto/Cipher/_mode_cbc.py", line 178, in encrypt
    c_uint8_ptr(plaintext),
  File "/usr/lib/python3.8/site-packages/Crypto/Util/_raw_api.py", line 144, in c_uint8_ptr
    raise TypeError("Object type %s cannot be passed to C code" % type(data))
TypeError: Object type <class 'str'> cannot be passed to C code

PHP Code?

99.999% of my file is HTML but I have a piece of PHP to automate the copyright year in the footer. I know that it says to upload a HTML file but would it be possible to do the same thing with a PHP file so I don't have to do this every year? :)

I guess the worst case scenario is to just utilize the div container in the protected file and put the< php echo date("Y"); > there and use that as the footer copyright area.

Decryption tool, so that encrypted pages can be edited again

It could be useful to have a decryption tool, so that you could take a page that's been encrypted by PageCrypt and run it through the tool (with the password) to edit the HTML again.

The code for this would look similar to what the PageCrypt template does to decrypt the page, except that the tool would then initiate a browser download of the unencrypted page html file.

Mangled unicode characters produced by PowerShell script

PageCrypt has a PowerShell interface that was originally generously contributed by @nialfrancis.

When running a test on the current version of PageCrypt today, I noticed that that unicode characters do not seem to be decrypted properly, presumably due to an encoding issue.

Desired result, as produced by the frontend gui and the python script:

desired

Actual result, as produced by the PowerShell script. Note the mangled ⚡ symbol in the decrypted page.

actual

Custom styles for PageCrypt?

Hi!
I see there are no CSS files for PageCrypt, so then how do I change the (no offense) ugly looking default password prompt "window".

Thanks in advance for any help!

Inspect Doesn't work post encryption

Hey!

I used page crypt to send a sensitive page over to my dev friend.
But after entering the password he cant inspect element the page and fetch the code.
Is this a real world scenario? Like was this done on purpose?

Do lemme know!

Thanks and Regards,
@ChintzRuparel

Stronger encryption?

Does your encryption library that you (and staticrypt) use allow for larger encryption keys? The reason for this inquiry is to develop self-destruct web pages after (n) times of viewing.

Would love your thoughts on the matter. Email at your discretion.

Simple way to change page title

First, very nice project! Thanks for sharing.

Have been trying to find simple way to add form field, which will allow changing of the default encrypted page title.

Currently set to <title>Password Protected Page</title> and like to have form field entry change it when encryption is processed.

Any tips to accomplish will be much appreciated.

Susan

Deployment Issues

Hi,

Thanks for this! I was able to get a simple app deployed on repl.it but it didn't work on GitHub pages or Netlify. Wondered if you'd have any idea why.

Suggestion: use un-minified sources in the demo page

First of all, awesome project. Such a clever, elegant solution to such a common problem. I have one suggestion. In the demopage, a minified version of CryptoJS is included. This makes it kind of difficult to set breakpoints and learn about the underlying cryptographic methods being applied here. For instance, I spent some time this evening trying to work out "how does it know to raise an error when the wrong password is entered?" (answer: because cryptojs percent encodes all content before encrypting it, and raises an error if the decrypted string cannot be percent decoded).

Since the demo page is all about helping people to learn this tool, I'd like to suggest using an un-minified version of this library to allow easier inspection and deeper learning. It could live is a separate file if you are worried about polluting your main code base with such a large library. I believe this would be the needed file https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/core.js

Keep page unlocked for a while between page refreshes

Hello!
Thanks for this excelent tool!
It is possible to preserve the page unlocked (unencrypted) for a while, like X hours or X days, to prevent the need for input password every time the page is refreshed?

Thanks, again!

Doesnt work with 000webhost?

Works in atom and local but when I upload it to 000webhost nothing happens when I press submit. I think this has to do with 000webhost but I make issue just in case

iOS Form submission fault when accessing previously password protected/pagecrypt'd html site

iOS form submission error

As for the html encryption submit form itself:
It works (for me) on
*Windows/Ubuntu (Firefox)
*3DS
*Switch(DNSBrowser)
*WiiU (builtin browser)
*Android (Chrome)

  • however -

not on iOS (iOS9 and 10.3.3), but that is to be expected, as I've
had trouble getting the simplest form submits (https://pastebin.com/MzWCYjeD [test: https://htmledit.squarefree.com])
working on mobileSafari just the same.
I don't really know what kind of incompatiblity prevents (most likely on apple's site ?) this from working properly, as it works on all other devices I own.

Would be nice if it worked on a node html page.

So I have a nodejs page that I'd like to pw protect but ran into your clientside app. It works fine for the
initial page access, however for subsequent page access, the page does not work as designed.

So initially, an authorized user on a website wants to start a video conference. he clicks the links and
starts the WebRTC conference. He texts or provides a unique link to the attendees of the conference.
However, when an attendee browses the link, he encounters your password app, but after entering the password, it's like the attendee is initializing his own conference instead of joining the existing one.

I know this is probably beyond the scope of your app, but it would be nice to have. I guess I could modify the code perhaps?

Good job though....

Ray

Functionality

Thank you so so much for this tool Max!!! amazingly helpful!

Python dependency issue

First off, the dependencies didn't want to install at all.
=> complained about "Visual Studio" missing.

As suggested (after searching for the newest instance):
(1) I installed this: vs_community__656358267.1586258179.exe
==> not recognized.

(1)Visual_Studio(new_ver)

Then I utilized the wayback machine and installed this (admittedly
older version): visualcppbuildtools_full.exe
(2) installed "Windows 8.1 SDK" from https://web.archive.org/web/20180811054711/https://download.microsoft.com/download/5/f/7/5f7acaeb-8363-451f-9425-68a90f98b238/visualcppbuildtools_full.exe?fixForIE=.exe
-> it did say something about "not installing everything, as a newer
version already exists
=> trying again yielded this:

    copying lib\Crypto\Cipher\AES.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\ARC2.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\ARC4.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\blockalgo.py -> build\lib.win-amd64-3.6\Crypto\Cip
her
    copying lib\Crypto\Cipher\Blowfish.py -> build\lib.win-amd64-3.6\Crypto\Ciph
er
    copying lib\Crypto\Cipher\CAST.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\DES.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\DES3.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\PKCS1_OAEP.py -> build\lib.win-amd64-3.6\Crypto\Ci
pher
    copying lib\Crypto\Cipher\PKCS1_v1_5.py -> build\lib.win-amd64-3.6\Crypto\Ci
pher
    copying lib\Crypto\Cipher\XOR.py -> build\lib.win-amd64-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\__init__.py -> build\lib.win-amd64-3.6\Crypto\Ciph
er
    creating build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\asn1.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\Counter.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\number.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\py3compat.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\randpool.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\RFC1751.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\winrandom.py -> build\lib.win-amd64-3.6\Crypto\Util
    copying lib\Crypto\Util\_number_new.py -> build\lib.win-amd64-3.6\Crypto\Uti
l
    copying lib\Crypto\Util\__init__.py -> build\lib.win-amd64-3.6\Crypto\Util
    creating build\lib.win-amd64-3.6\Crypto\Random
    copying lib\Crypto\Random\random.py -> build\lib.win-amd64-3.6\Crypto\Random

    copying lib\Crypto\Random\_UserFriendlyRNG.py -> build\lib.win-amd64-3.6\Cry
pto\Random
    copying lib\Crypto\Random\__init__.py -> build\lib.win-amd64-3.6\Crypto\Rand
om
    creating build\lib.win-amd64-3.6\Crypto\Random\Fortuna
    copying lib\Crypto\Random\Fortuna\FortunaAccumulator.py -> build\lib.win-amd
64-3.6\Crypto\Random\Fortuna
    copying lib\Crypto\Random\Fortuna\FortunaGenerator.py -> build\lib.win-amd64
-3.6\Crypto\Random\Fortuna
    copying lib\Crypto\Random\Fortuna\SHAd256.py -> build\lib.win-amd64-3.6\Cryp
to\Random\Fortuna
    copying lib\Crypto\Random\Fortuna\__init__.py -> build\lib.win-amd64-3.6\Cry
pto\Random\Fortuna
    creating build\lib.win-amd64-3.6\Crypto\Random\OSRNG
    copying lib\Crypto\Random\OSRNG\fallback.py -> build\lib.win-amd64-3.6\Crypt
o\Random\OSRNG
    copying lib\Crypto\Random\OSRNG\nt.py -> build\lib.win-amd64-3.6\Crypto\Rand
om\OSRNG
    copying lib\Crypto\Random\OSRNG\posix.py -> build\lib.win-amd64-3.6\Crypto\R
andom\OSRNG
    copying lib\Crypto\Random\OSRNG\rng_base.py -> build\lib.win-amd64-3.6\Crypt
o\Random\OSRNG
    copying lib\Crypto\Random\OSRNG\__init__.py -> build\lib.win-amd64-3.6\Crypt
o\Random\OSRNG
    creating build\lib.win-amd64-3.6\Crypto\SelfTest
    copying lib\Crypto\SelfTest\st_common.py -> build\lib.win-amd64-3.6\Crypto\S
elfTest
    copying lib\Crypto\SelfTest\__init__.py -> build\lib.win-amd64-3.6\Crypto\Se
lfTest
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\common.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_AES.py -> build\lib.win-amd64-3.6\Cr
ypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ARC2.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ARC4.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_Blowfish.py -> build\lib.win-amd64-3
.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CAST.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_DES.py -> build\lib.win-amd64-3.6\Cr
ypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_DES3.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_pkcs1_15.py -> build\lib.win-amd64-3
.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_pkcs1_oaep.py -> build\lib.win-amd64
-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_XOR.py -> build\lib.win-amd64-3.6\Cr
ypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\__init__.py -> build\lib.win-amd64-3.6\Cr
ypto\SelfTest\Cipher
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\common.py -> build\lib.win-amd64-3.6\Crypto
\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_HMAC.py -> build\lib.win-amd64-3.6\Cry
pto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD2.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD4.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD5.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_RIPEMD.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA224.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA256.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA384.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA512.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\__init__.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Hash
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_AllOrNothing.py -> build\lib.win-a
md64-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_chaffing.py -> build\lib.win-amd64
-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_KDF.py -> build\lib.win-amd64-3.6\
Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_rfc1751.py -> build\lib.win-amd64-
3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\__init__.py -> build\lib.win-amd64-3.6\
Crypto\SelfTest\Protocol
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_DSA.py -> build\lib.win-amd64-3.6
\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_ElGamal.py -> build\lib.win-amd64
-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_importKey.py -> build\lib.win-amd
64-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_RSA.py -> build\lib.win-amd64-3.6
\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\__init__.py -> build\lib.win-amd64-3.6
\Crypto\SelfTest\PublicKey
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\test_random.py -> build\lib.win-amd64-3.6
\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\test_rpoolcompat.py -> build\lib.win-amd6
4-3.6\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\test__UserFriendlyRNG.py -> build\lib.win
-amd64-3.6\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\__init__.py -> build\lib.win-amd64-3.6\Cr
ypto\SelfTest\Random
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Random\Fortuna
    copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaAccumulator.py -> bui
ld\lib.win-amd64-3.6\Crypto\SelfTest\Random\Fortuna
    copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaGenerator.py -> build
\lib.win-amd64-3.6\Crypto\SelfTest\Random\Fortuna
    copying lib\Crypto\SelfTest\Random\Fortuna\test_SHAd256.py -> build\lib.win-
amd64-3.6\Crypto\SelfTest\Random\Fortuna
    copying lib\Crypto\SelfTest\Random\Fortuna\__init__.py -> build\lib.win-amd6
4-3.6\Crypto\SelfTest\Random\Fortuna
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\test_fallback.py -> build\lib.win-a
md64-3.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\test_generic.py -> build\lib.win-am
d64-3.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\test_nt.py -> build\lib.win-amd64-3
.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\test_posix.py -> build\lib.win-amd6
4-3.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\test_winrandom.py -> build\lib.win-
amd64-3.6\Crypto\SelfTest\Random\OSRNG
    copying lib\Crypto\SelfTest\Random\OSRNG\__init__.py -> build\lib.win-amd64-
3.6\Crypto\SelfTest\Random\OSRNG
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_asn1.py -> build\lib.win-amd64-3.6\Cry
pto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_Counter.py -> build\lib.win-amd64-3.6\
Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_number.py -> build\lib.win-amd64-3.6\C
rypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_winrandom.py -> build\lib.win-amd64-3.
6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\__init__.py -> build\lib.win-amd64-3.6\Cryp
to\SelfTest\Util
    creating build\lib.win-amd64-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\test_pkcs1_15.py -> build\lib.win-amd6
4-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\test_pkcs1_pss.py -> build\lib.win-amd
64-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\__init__.py -> build\lib.win-amd64-3.6
\Crypto\SelfTest\Signature
    creating build\lib.win-amd64-3.6\Crypto\Protocol
    copying lib\Crypto\Protocol\AllOrNothing.py -> build\lib.win-amd64-3.6\Crypt
o\Protocol
    copying lib\Crypto\Protocol\Chaffing.py -> build\lib.win-amd64-3.6\Crypto\Pr
otocol
    copying lib\Crypto\Protocol\KDF.py -> build\lib.win-amd64-3.6\Crypto\Protoco
l
    copying lib\Crypto\Protocol\__init__.py -> build\lib.win-amd64-3.6\Crypto\Pr
otocol
    creating build\lib.win-amd64-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\DSA.py -> build\lib.win-amd64-3.6\Crypto\Public
Key
    copying lib\Crypto\PublicKey\ElGamal.py -> build\lib.win-amd64-3.6\Crypto\Pu
blicKey
    copying lib\Crypto\PublicKey\pubkey.py -> build\lib.win-amd64-3.6\Crypto\Pub
licKey
    copying lib\Crypto\PublicKey\RSA.py -> build\lib.win-amd64-3.6\Crypto\Public
Key
    copying lib\Crypto\PublicKey\_DSA.py -> build\lib.win-amd64-3.6\Crypto\Publi
cKey
    copying lib\Crypto\PublicKey\_RSA.py -> build\lib.win-amd64-3.6\Crypto\Publi
cKey
    copying lib\Crypto\PublicKey\_slowmath.py -> build\lib.win-amd64-3.6\Crypto\
PublicKey
    copying lib\Crypto\PublicKey\__init__.py -> build\lib.win-amd64-3.6\Crypto\P
ublicKey
    creating build\lib.win-amd64-3.6\Crypto\Signature
    copying lib\Crypto\Signature\PKCS1_PSS.py -> build\lib.win-amd64-3.6\Crypto\
Signature
    copying lib\Crypto\Signature\PKCS1_v1_5.py -> build\lib.win-amd64-3.6\Crypto
\Signature
    copying lib\Crypto\Signature\__init__.py -> build\lib.win-amd64-3.6\Crypto\S
ignature
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastm
ath.
    building 'Crypto.Random.OSRNG.winrandom' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\src
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe
/c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isrc/ -Isrc/inc-msvc/ -Ic:\users\q702\appda
ta\local\programs\python\python36\include -Ic:\users\q702\appdata\local\programs
\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\
VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt"
 "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files
(x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\in
clude\winrt" /Tcsrc/winrand.c /Fobuild\temp.win-amd64-3.6\Release\src/winrand.ob
j
    winrand.c
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
26): error C2061: syntax error: identifier 'intmax_t'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
27): error C2061: syntax error: identifier 'rem'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
27): error C2059: syntax error: ';'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
28): error C2059: syntax error: '}'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
30): error C2061: syntax error: identifier 'imaxdiv_t'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
30): error C2059: syntax error: ';'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
40): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
41): error C2146: syntax error: missing ')' before identifier '_Number'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
41): error C2061: syntax error: identifier '_Number'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
41): error C2059: syntax error: ';'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
42): error C2059: syntax error: ')'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
45): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
46): error C2146: syntax error: missing ')' before identifier '_Numerator'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
46): error C2061: syntax error: identifier '_Numerator'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
46): error C2059: syntax error: ';'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
46): error C2059: syntax error: ','
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
48): error C2059: syntax error: ')'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
50): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
56): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
63): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
69): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
76): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
82): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
89): error C2143: syntax error: missing '{' before '__cdecl'
    C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.h(
95): error C2143: syntax error: missing '{' before '__cdecl'
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\B
IN\\x86_amd64\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\q702\appdata\local\prog
rams\python\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.ar
gv[0] = '"'"'C:\\Users\\Q702\\AppData\\Local\\Temp\\pip-install-rkfx7zfm\\pycryp
to\\setup.py'"'"'; __file__='"'"'C:\\Users\\Q702\\AppData\\Local\\Temp\\pip-inst
all-rkfx7zfm\\pycrypto\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(
__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(com
pile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Q702\AppData\L
ocal\Temp\pip-record-cm71iagr\install-record.txt' --single-version-externally-ma
naged --compile --install-headers 'c:\users\q702\appdata\local\programs\python\p
ython36\Include\pycrypto' Check the logs for full command output.

C:\Users\Q702>

Won't work on my local server

I'm trying to get this working locally being served by my Laragon server. Loading the file works fine, but submit does nothing. Tried saving the web page 2 different ways. Any tips?

Change look of password page?

Hi!

Thanks for this awesome tool.

Just something more out of it is what I want.
Can u pls make the password box customizable, so that it may look like this: Secret Datatbase
And allow a background image to be uploaded, like that one. It had a background image in its repo. Just allow one to be uploaded.

WIll wait for the updates.

Thanks again!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.