Code Monkey home page Code Monkey logo

crypter's Introduction


Crypter
Crypter

An innovative, convenient and secure crypto app.

Download latest release

Standard JS Code Style Travis Build AppVeyor Build Test Coverage CodeClimate GPA GitHub all releases downloads


Encrypt unlimited bits. Remember only a bit.

Crypter is a cross-platform crypto app that makes encryption and decryption convenient while still upholding strong security. It tackles one of the weakest links in most security systems today - weak passwords. It simplifies secure password generation and management and requires you to only remember one bit - your MasterPass.

Crypter v4.0 is a crypto app that can decrypt and encrypt any arbitrary data this includes files and folders. This version has been released and fully tested for macOS (OSX), Linux (for all distros via AppImage) and Windows (32 & 64 bit). All core modules (modules that provide the core functionality) are fully tested.

Crypter v5.0 will save your MasterPass in your OS's Keychain so you won't have to enter it every time you open the app. To help speed up the development please send a PR for what's left do https://github.com/HR/Crypter/milestone/4

Please open an issue if you have any suggestions and add improvements via PRs!

Also checkout Ciphora (https://github.com/HR/ciphora) a decentralized end-to-end encrypted messaging app.

Link to this README: https://git.io/Crypter.info


Contents

Installation

All prebuilt binaries for all major platforms are available under releases.

Crypter is also on Homebrew Cask for macOS. So to install it, simply run the following command in the Terminal:

$ brew install --cask [email protected]

Screens

Welcome screen Crypter screen MasterPass screen Settings screen


Crypto

One key to derive them all!

Crypter derives a MasterPassKey from the MasterPass obtained at setup by using the PBKDF2 key derivation algorithm (see below for the specification). It then uses PBKDF2 to derive a number of encryption keys from the MasterPassKey that can be used for the encryption of files. This method allows for the generation of very secure encryption keys for data encryption. Moreover, by publicly storing the credentials used to derive the MasterPassKey and the salts used to derive the encryption keys, you are able to produce the encryption keys at will and without needing to store them securely. Your MasterPass is the only thing that you need to remember.

Crypter never directly encrypts anything with your MasterPass. Instead, it derives a MasterPassKey from it, which it then uses to derive the encryption key used to encrypt your file. Every time a file is decrypted, the encryption key is re-derived from the MasterPassKey. Every time you set the MasterPass through the setup or reset it through Verify MasterPass, the MasterPassKey is derived from the MasterPass using a newly generated set of (random) credentials. These credentials are used to re-derive the MasterPassKey every time that Crypter is executed (i.e. the app is launched).

Authentication with the AES-256-GCM symmetric block cipher is used by default. This ensures that data integrity is verified on decryption and allows the app to detect tampering or data corruption.

The following are the crypto defaults and can be found under app/config.js:

// Crypto defaults
{
  ITERATIONS: 50000, // file encryption key derivation iterations
  KEYLENGTH: 32, // encryption key length
  IVLENGTH: 12, // initialisation vector length
  ALGORITHM: 'aes-256-gcm', // encryption algorithm
  DIGEST: 'sha256', // digest function
  HASH_ALG: 'sha256', // hashing function
  MPK_ITERATIONS: 100000 // MasterPassKey derivation iterations
}

Encryption process

When encrypting a file, Crypter first creates a temporary hidden directory, namely '.crypting'. It then encrypts the user-selected file with the crypto defaults and flushes the encrypted data to a file in the directory, namely 'data'. If it is a directory then it is compressed first (tar). It also writes the public credentials to a file within the same directory, namely 'creds'. Finally, Crypter compresses the directory to a tar archive with the name of the user-selected file and the '.crypto' extension appended to it.

Decryption process

The decryption process is essentially the inverse of the encryption process. During decryption, Crypter creates a temporary hidden directory named '.decrypting'. It then reads the credentials from the creds file and decrypts the data file into the original file or directory (after decompressing it) with its original name and extension, as deduced from the CRYPTO file name (e.g. the extension for "file.txt.crypto" would be ".txt").

Public credentials

Certain credentials are required to decrypt the encrypted data. These are needed to reconstruct the particular encryption key and to verify data integrity. These can be stored publicly without compromising security since it is fairly impossible (by current standards) to reconstruct the encryption key without the MasterPass and its credentials. These credentials are stored in the creds file of the CRYPTO file archive (as delineated above) in the following format:

v1

Crypter#iv#authTag#salt#dir

v2

Uses JSON

{
  "type": "CRYPTO",
  "iv": "...",
  "authTag": "...",
  "salt": "...",
  "isDir": true || false
}

The dir part is only included for directories

CRYPTO file

Format

A CRYPTO file is the product of the Crypter encryption process. This file stores both the encrypted version of the user file and the public credentials needed to encrypt and decrypt it. It has a .crypto file extension, which is appended to the full file name (including the extension) of the file originally encrypted. The file itself is a tar archive in the following structure:

someFile.crypto
β”œβ”€β”€ data // the encrypted version of the user selected file
└── creds // the public credentials used to encrypt it

Reusing the same MasterPass

If you attempt to decrypt a CRYPTO file by resetting to a specific MasterPass or setting an identical MasterPass on a different machine, you will likely encounter the following error:

ERROR: Unsupported state or unable to authenticate data

This issue occurs because the MasterPassKey that was originally used to derive the encryption key on is not the same as the MasterPassKey derived with the reused MasterPass. Since Crypter uses randomness to generate secure credentials, this second set of credentials will be quite different from the original set. As a result, the derived encryption key is incorrect and yields this error.

See Achieving portability and same MasterPass reuse for instructions on how to successfully reuse the same MasterPass.

Achieving portability and same MasterPass reuse

To achieve portability on Crypter, the set of MasterPassKey credentials need to be exported from Crypter on the source machine1 and imported into Crypter on the target machine2.

This can be achieved in two simple steps:

  1. Export MasterPass credentials on the source machine1
  2. Import MasterPass credentials on the target machine2

Please refer to the FAQs for instructions on how to perform the above steps.


[1] The machine where the CRYPTO file was initially encrypted.

[2] The machine where you wish to decrypt the CRYPTO file.


Security

Security-first practice

Crypter follows a security-first practice. This means that security is its highest priority and first consideration. Thus, while Crypter seeks to make encryption more convenient, it always defers to maintaining a high level of security.

MasterPass

Crypter never stores your MasterPass in memory or on the filesystem. This substantially improves the security of your MasterPass. You are only asked to enter the MasterPass when you first set, reset or verify it. Whenever you enter your MasterPass, Crypter derives a MasterPassKey (using a set of generated credentials) and then immediately discards the MasterPass. The MasterPassKey is then securely stored in memory and used to derive the encryption keys. Since these credentials are derived via a one-way function, they cannot be used in any way to derive the MasterPass.

MasterPassKey

Crypter uses a WeakMap to store the MasterPassKey inside the MasterPassKey class using a closure function. This makes the MasterPassKey data held in the object (externally) inaccessible, consequently increasing the protection of the MasterPassKey. The MasterPassKey is never flushed to the filesystem and is always stored in (main) memory. Since JS does not give control over or allow such a low-level operation as wiping memory, the program relies on the garbage collection and volatility of the main memory for the permanent erasure of the MasterPassKey stored in memory.

A decent number of iterations (see the above specifications) are used in the derivation of the MasterPassKey to mitigate brute-force attacks. A good amount of iterations are also used during the derivation of the encryption keys from the MasterPassKey. Consequently, performance and speed are not significantly compromised. For critical applications, you may choose to select 10,000,000 iterations instead of the default number (in app/core/crypto.js). Please refer to http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf for more information.

Crypter generates a new set of random credentials for deriving the MasterPassKey every time the MasterPass is set (at setup) or reset. Crypter employs randomness to mitigate brute-force attacks and thus drastically improve security.


FAQs

How do I encrypt a file or folder?

If you haven't already, walk through the setup and set your MasterPass. To encrypt a file or folder, first launch Crypter and verify your MasterPass. After doing so successfully, you will see the main Crypter window with an orange area. Here, you can simply drag-and-drop or click to select the file/folder you wish to encrypt. Once Crypter is done encrypting your file/folder, it will show you the encryption information (i.e. the encryption key and the path of the encrypted file) in a new window. To encrypt another file/folder simply click the back arrow at the bottom left and start-over ;)

How do I decrypt a CRYPTO file?

The following instructions assume that the CRYPTO file that you wish to decrypt is being used with the same MasterPass that you set at setup and also that you have not reset it since that time. If this is not the case, please refer to Reusing the same MasterPass.

To decrypt a CRYPTO file, first launch Crypter and verify your MasterPass. After doing so successfully, you will see the main Crypter window with an orange area. Here, you can simply drag-and-drop or click to select the CRYPTO file that you wish to decrypt. After a few seconds, the process will complete and you will see some information about the file and its original encryption in a new window. By default, the decrypted file has the same name as the name of the original file (i.e. the encrypted file name without the .crypto at the end).

How do I encrypt multiple files?

Crypter can encrypt an entire folder so you can put them in a folder or, alternatively, compress them into an archive (like a .zip) and then just pass it to Crypter ;)

Why am I getting the "Corrupted Crypter file or trying to decrypt on a different machine." error?

This error means that either your Crypter file (i.e. the data file) is corrupt/tempered, that you are on a different machine than the one originally used to encrypt the file or that you have previously reset your MasterPass. For the last two cases, please refer to Reusing the same MasterPass and Achieving portability and same MasterPass reuse.

Why can't I decrypt a CRYPTO file on a different machine with the same MasterPass?

Please refer to Reusing the same MasterPass and Achieving portability and same MasterPass reuse

Why can't I decrypt a CRYPTO file with the same MasterPass?

Please refer to Reusing the same MasterPass and Achieving portability and same MasterPass reuse

Where are my encrypted/decrypted files/folders placed?

By default, every source file that you encrypt/decrypt gets encrypted/decrypted to the same directory where the source file is located.

How can I access Crypter's preferences?

You can access Crypter's preferences by either clicking on the cog icon in the main Crypter window or by going to Crypter > Preferences... from the menu.

How can I reset my MasterPass?

You can reset your MasterPass by clicking on the "Forgot it" link in the Verify MasterPass window. This takes you to a new screen where you can enter a new, valid MasterPass. Once you've entered it, click the 'Reset' button and you'll be sent back to the verify screen where you can verify your new MasterPass.

What is a valid MasterPass?

Crypter will not allow you to set an invalid MasterPass. A MasterPass is valid when it adheres to the following rules:

  • It is at least 8 characters long
  • It has at least one uppercase alphabetic character (A-Z)
  • It has at least one lowercase alphabetic character (a-z)
  • It has at least one numeric character (0-9)
  • It has at least one special character ($@!%*#?&)

These rules are enforced via the following regular expression:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@!%*#?&]).{8,}$/;

What are MasterPass credentials?

MasterPass credentials are a set of values that are required to derive the MasterPassKey from the MasterPass. These values have a pseudo-random element and are cryptographically linked. Every MasterPass that is set or reset with Crypter has a unique set of MasterPass credentials. These yield a distinct MasterPassKey, even when a MasterPass is reused.

How can I export my MasterPass credentials?

To export your MasterPass credentials, you can first open Crypter's preferences (see above). From this screen, click on the "Export" button. A dialog will appear from which you can select the folder where you wish to export the credentials. A success message will confirm a successful export. The exported MasterPass credentials file is always named credentials.crypter.

How can I import my MasterPass credentials?

To import a set of MasterPass credentials, you can first open Crypter's preferences (see above). From this screen, click on the "Import" button. A dialog will appear from which you can locate your credentials.crypter file. After you select it, a success message will confirm a successful import and you will have to verify the MasterPass for the credentials.

NOTE: while Crypter does not require the MasterPass credentials file to be exactly named credentials.crypter, it does require the file's contents to be unaltered from when it was exported from Crypter. If it has been altered, the import may fail.


Development

Crypter is developed in the "dev" branch, which may be unstable at times. This branch should typically be used for pull requests.

The "master" branch will always be kept stable.

Configurations

All major configurations that you can apply are found under app/config.js. This includes changes to certain cryptography settings. Please be advised that altering these may break functionality and portability.

Install (dependencies)

To install all dependencies, run:

$ yarn install

Run

Since Crypter uses gulp, please install it globally if you have not already done so. To start Crypter, run:

$ gulp

Test

Crypter primarily uses mocha and chai for testing. Since the project uses a lot of JS ES6 syntax, babel is also used as a transpiler. To run all the tests, execute:

$ yarn test

Crypter uses istanbul for coverage. To run test coverage, execute:

$ yarn run coverage

Build

Crypter's binaries (available under releases) have been built using Electron. Since Crypter uses electron-builder to build binaries, you must install it globally:

$ npm install electron-builder@next -g

To build the app for macOS, run:

$ yarn run build:mac

To build the app for Linux, run:

$ sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils
$ yarn run build:lin

To build the app for Windows x84 and/or x64, run:

$ yarn run build:win

License

The MIT License (MIT)

Copyright (c) Habib Rehman (https://git.io/HR)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished todo so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

crypter's People

Contributors

ferndot avatar hr avatar kawarimidoll 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crypter's Issues

MasterPass requirements and rules

Crypter currently enforces certain MasterPass requirements (found in the README under FAQ). Consider allowing all unicode chars and if not than at least more than currently.

The problem with supporting all unicode or even just ambiguous characters such as a space is that handling them could cause errors. It is also unconventional for the average user whereas the above outlined guideline is commonplace and hence could result in a bad UX.

Full CRYPTO file portability

As it is right now, the MasterPass credentials are not included with the CRYPTO file when you encrypt a file using Crypter.

Proposition: Consider including the MasterPass credentials with the CRYPTO file or provide an option to do so.

This has some pros. and cons. that are as follows:

Pros:

  • Achieves full file portability: only need to use the correct MasterPass to decrypt file.
  • Solves the reusing the same MasterPass problem
  • Increases convenience: no need to import or export the MasterPass credentials

Cons:

  • Decreases security: more information about the encryption is exposed (readily available) and so makes an attack more easier.
  • Increases complexity: makes the decryption and encryption procedure more complex
  • Makes it prone to more errors due to increased complexity

Use ReactJS for the frontend

Consider using ReactJS for the frontend of Crypter as it will have increased interactivity demands for which ReactJS may be ideal (currently uses handlebars and manually updates UI -> no two way data-binding going on :( ).

Implement decryption functionality

With the encryption functionality implemented, the decryption functionality needs to be implemented in order to allow for seamless encryption and decryption.

The idea is that the user should not have to supply any input (other than the file, of course) for decryption so the encryption key has to be re-derived from the metadata appended to the file on encryption and used for decryption. After decryption, the file has to be unzipped and then flushed to the filesystem.

Work for this is going on in the dev branch. Progress made thus far: e995751 4567d1a

Broken i32 AppImage

Hi, I tried 32bit AppImage and I get the following error:

error: PROMISE ERR: LevelUPError: Failed to require LevelDOWN (/tmp/.mount_Wru5RE/usr/bin/resources/app/node_modules/leveldown/build/Release/leveldown.node: error ELF Class **ELFCLASS64)**.

EROFS: read-only file system

Using the AppImage I get:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: EROFS: read-only file system, mkdir '/tmp/.mount_ITKhd4/usr/bin/resources/app/script/debug'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:916:18)
    at Object.mkdirsSync (/tmp/.mount_ITKhd4/usr/bin/resources/app/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js:29:9)
    at Object.<anonymous> (/tmp/.mount_ITKhd4/usr/bin/resources/app/script/logger.js:12:4)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:456:32)
    at tryModuleLoad (module.js:415:12)
    at Function.Module._load (module.js:407:3)
    at Module.require (module.js:466:17)

Please note that the AppImage itself is read-only, so if Crypter needs to write something it should use a directory in $HOME.

Verification page doesn't show up after Set Masterpass

Prerequisites

  • Can you reproduce the problem?
  • Did you read the entire README.md?
  • Did you read the FAQs?
  • Do you fully understand how Crypter works and how to use it?
  • Did you check the issues to see if your bug or enhancement is already reported?

Description

[Description of the bug or feature]

Steps to Reproduce

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

Expected behavior: [Verification Page to show up after Set Masterpass]

Actual behavior: [Verification Page didn't show up at all]

Versions

Crypter:

Release (full release name): 5.0.0

Operating System (name and version): WINDOWS 10

You can find the full release name under https://github.com/HR/Crypter/releases. For version 3.0.0 and up, the version is found under Crypter > About or just in the menu Version X.Y.Z.

Create CI build process

Create a continuous integration build process that builds the source for macOS, Linus and Windows for every release (major/minor). Most likely CI used for this is travis.

Create settings and menu

Create settings window where you can configure Crypter and menu from which you can access useful stuff.

Save Password in Keychain

Save the MasterPass in the OS’s Keychain so user doesn’t have to enter it every time the app is launched

Make LevelDB work with latest Electron releases

LevelDB (levelup) does not work with the latest releases of electron (> 1.1.3). It is rather a LevelDOWN compatibility issue that is still unresolved. See electron/electron#5851 for more info.

Temporary fix (1b2e32c) is to use electron 1.1.3 but a more permanent fix needs to be found (it is an electron issue) so latest electron releases can be utilised.

Consider using a different DB that is more compatible with Electron or a primary JSON persistent solution (i.e. store public crypto data as JSON on fs) since Crypter's persistent storage requirements are so basic - just need to get/set data)

Unable to decrypt file on different machine

I do not know if this is an issue or not, but I encrypted a file using Crypter on one Linux machine. Then, using Crypter with the same Master Pass I get an error message 'ERROR: Unsupported state or unable to authenticate data'. If this is how the system is supposed to work, I understand, I am just looking for clarification. The file was a .tar.gz file.

emitErrs was removed in winston 3.0.0

When I try to start the Crypter it gives me and error saying emitErrs was removed in winston 3.0.0 It wouldn't let me copy paste so I have included a picture of the error.
screenshot 2

I have followed everything on the readme. I'm fairly new to this so I do not know how to fix it.

doesn't encrypt

it encrypts the program but it makes it MORE detectable by av lol

False Positive? Hybrid Analysis / VirusTotal

Prerequisites

  • [Y] Can you reproduce the problem?
  • [Y] Did you read the entire README.md?
  • [Y] Did you read the FAQs?
  • [Y] Do you fully understand how Crypter works and how to use it?
  • [Y] Did you check the issues to see if your bug or enhancement is already reported?

FALSE POSITIVE? HYBRID ANALYSIS / VIRUS TOTAL

[AV/AM DETECTION ENGINE]

Steps to Reproduce

  1. [HYBRID ANALYSIS] HERE
    image

  2. [VIRUSTOTAL] HERE
    image

Expected behavior: [Shouldn't detect as malicious]

Actual behavior: [Suspicious Activity]

3.1.0.exe

SHA256 - a69c21c5540393cd8b6d30356ca892738d60cc643474a54ec0819e5d08341df3

Crypter:

Release (full release name): Crypter-Setup-3.1.0.exe

Operating System (name and version): WINDOW 7 64 BIT

You can find the full release name under https://github.com/HR/Crypter/releases. For version 3.0.0 and up, the version is found under Crypter > About or just in the menu Version X.Y.Z.

MasterPass.check is vulnerable to timing attacks.

Summary

Timing attacks are a type of side channel attack where one can discover valuable information by recording the time it takes for a cryptographic algorithm to execute.

_.isEqual() does a byte-by-byte comparison of two values and as soon as the two differentiate it terminates. This means the longer it takes until the operation returns, the more correct characters the attacker has guessed.

const match = _.isEqual(global.creds.mpkhash, mpk.hash)

Link to source code: https://github.com/HR/Crypter/blob/master/app/src/MasterPass.js#L23

How can this be fixed?

The following code does not terminate as soon as two bytes are not the same:

var result = 0;
for (var i = 0; i < a.length; ++i) {
  result |= (a.charCodeAt(i) ^ b.charCodeAt(i));
}
return result;

Buffer vulnerability

Version: 3.1.0

[DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead.
    at showFlaggedDeprecation (buffer.js:127:13)

Buffer constructor presents a major security threat and has already been deprecated so change its uses to Buffer.from()

Is at EOL?

This hasn't been updated in 2 years, shouldn't this be archived?

macOS Icon issue

In Crypter 3.0 on macOS Sierra, the icon is distorted slightly. This may be due to the way the drop shadow is added by the platform.

untitled

Hide my poject / execute my project

Have not read the README yet but it looks good i will try it very soon..
Sorry for the stupid question but your project only encrypts the files? Or i can execute my file as well? I mean if i have a project i created and i dont want to people be able to read the code but still able to execute it... :)
Which is it?

Thankx for your time anyway

Installation .deb

Hi @HR,

Please can you add the following for people that use Debian platform crypter-{version}.deb

With Installation guide inside Readme.md

Debian Linux (Ubuntu)

  1. Download crypter-{version}.deb
  2. Run sudo dpkg --install crypter-{version}.deb on the downloaded package.
  3. Launch crypter using the installed crypter command.

Crypto parameters

Hey,
I don't really know if I'm right but if IVs are generated on 12*8 = 96bits, then you should raise up it to 128 bits to get a strong security :)

Concerning authentication data, it is generated on 16 bits ? If yes, you should generate it on 128 bits :)

I hope I helped you 🐳

Status?

Hi,

Is there any future updates to this application?

Encrypt folder ?

Hi, all's well when dropping a single file on the Crypter screen, but when I try to encrypt a folder, I get :

ERROR: EISDIR: illegal operation on a directory

When I drag&drop several files, only the first one is taken into account.
Why can't crypter handle these - common - cases ?

Can't decrypt on different machine after importing credentials

Prerequisites

  • Can you reproduce the problem?
  • Did you read the entire README.md?
  • Did you read the FAQs?
  • Do you fully understand how Crypter works and how to use it?
  • Did you check the issues to see if your bug or enhancement is already reported?

Description

Encrypt and decrypt only works on source machine, when export credentials and import them on different machine it doesn't work at all. Also after importing credentials, verification page doesn't show up as well. So Encrypt and decrypt only works on source machine, which isn't convenient and not secure.

Steps to Reproduce

  1. My suggestion is to not save the MasterPass in OS keychain
  2. [Second Step]
  3. [and so on...]

Expected behavior: [What you expected to happen]

Actual behavior: [What actually happened]

Versions

Crypter:

Release (full release name): Crypter 5.0.0

Operating System (name and version): Windows 10 2004

You can find the full release name under https://github.com/HR/Crypter/releases. For version 3.0.0 and up, the version is found under Crypter > About or just in the menu Version X.Y.Z.

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.