PassWordsCore 2.1.2

PassWordsCore provides a fast, easy-to-use password manager with strong encryption and hashing.
It also provides 2FA and random string generation. Making PassWords Easy!

Install-Package PassWordsCore -Version 2.1.2
dotnet add package PassWordsCore --version 2.1.2
<PackageReference Include="PassWordsCore" Version="2.1.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PassWordsCore --version 2.1.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

PassWords-Core

A brand new core

Create easy a password manager

Step 1: Create database file

using PassWordsCore;
//Your code logic

//Initialize db
Database.EnsureCreated();

//Create PassWords database
Database.CreateDB("YourDBName","YourPassword");

Step 2: Login into database

static Database db = new Database();
db.Login("YourDBName","YourPassword");

Step 3: Create account

//Create account object
var account = new Account()
{
  Username = "Test",
  Password = "Test123",
  Title = "MyAccount",
  Description = "Test the account",
  Type = "Email"
};
//Add account to current database
db.Add(account);

Step 4: Get accounts

List<Account> accounts = db.GetAccounts();

Step 5: Edit account

var testaccount = accounts.FirstOrDefault(a => a.Title == "MyAccount");
testaccount.Title = "HelloWorld";
db.Update(testacccount);

Step 6: Delete account

var testaccount = accounts.First(a => a.Title == "MyAccount");
db.Delete(testacccount);

Step 7: Change database password or name

db.UpdatePassword("oldpass","newpass");
db.UpdateName("NewDBName");

Step 8: Backup database

db.Backup("destinationpath/database.db");

Step 8b: Import database

Database.Restore("destinationpath/database.db","MyDatabase");

Step 9: Delete database

Database.DeleteDB("YourDBName");

Step 10: List databases

List<DB> alldatabases = Database.ListDatabases();

Step 11: Delete all databases/the databases file

Database.EnsureDeleted();

Two factor authentication

You can use 2FA for making the login to the database more secure,
but you can also use PassWords to validate a 2FA login into another system.

Using 2FA in PassWords

//First, login into your database
static Database db = new Database();
db.Login("YourDBName","YourPassword");

//Second, enable 2FA login
db.Add2FA();

//Third, get your secret
//Use this secret into another 2FA app
string secret = db.Get2FA();

//Logout
db.Logout(); 

//When you login now, 
db.Login("YourDBName","YourPassword");
//you will get
LoginResult.Needs2FA;

//Now you have to use your 2FA app and enter the code:
db.Login2FA("000000");//your code
//If returns true, you are logged in

//Remove 2FA from database: (first login() and login2fa())
db.Remove2FA();

Validating another application that uses 2FA using PassWords

//First, update an account and set the TwoFactorSecret property to your secret
var testaccount = accounts.First(a => a.Title == "MyAccount");
testaccount.TwoFactorSecret = "MYSECRET";

//Second, login into an application with MyAccount

//Generate key (remember => every 30 seconds it changes so you have to generate a new one) 
string code = Database.GenerateCode("MYSECRET");
//Enter the code and log in.

Generate a random string

Database.RandomString(10,true); //Length = 10, letters = true
Database.RandomString(15,true,true,true,true); //Length = 15, letters, capitals numbers and special chars

For further or more detailed usage of PassWordsCore, see the wiki (that will be added in the future)

PassWords-Core

A brand new core

Create easy a password manager

Step 1: Create database file

using PassWordsCore;
//Your code logic

//Initialize db
Database.EnsureCreated();

//Create PassWords database
Database.CreateDB("YourDBName","YourPassword");

Step 2: Login into database

static Database db = new Database();
db.Login("YourDBName","YourPassword");

Step 3: Create account

//Create account object
var account = new Account()
{
  Username = "Test",
  Password = "Test123",
  Title = "MyAccount",
  Description = "Test the account",
  Type = "Email"
};
//Add account to current database
db.Add(account);

Step 4: Get accounts

List<Account> accounts = db.GetAccounts();

Step 5: Edit account

var testaccount = accounts.FirstOrDefault(a => a.Title == "MyAccount");
testaccount.Title = "HelloWorld";
db.Update(testacccount);

Step 6: Delete account

var testaccount = accounts.First(a => a.Title == "MyAccount");
db.Delete(testacccount);

Step 7: Change database password or name

db.UpdatePassword("oldpass","newpass");
db.UpdateName("NewDBName");

Step 8: Backup database

db.Backup("destinationpath/database.db");

Step 8b: Import database

Database.Restore("destinationpath/database.db","MyDatabase");

Step 9: Delete database

Database.DeleteDB("YourDBName");

Step 10: List databases

List<DB> alldatabases = Database.ListDatabases();

Step 11: Delete all databases/the databases file

Database.EnsureDeleted();

Two factor authentication

You can use 2FA for making the login to the database more secure,
but you can also use PassWords to validate a 2FA login into another system.

Using 2FA in PassWords

//First, login into your database
static Database db = new Database();
db.Login("YourDBName","YourPassword");

//Second, enable 2FA login
db.Add2FA();

//Third, get your secret
//Use this secret into another 2FA app
string secret = db.Get2FA();

//Logout
db.Logout(); 

//When you login now, 
db.Login("YourDBName","YourPassword");
//you will get
LoginResult.Needs2FA;

//Now you have to use your 2FA app and enter the code:
db.Login2FA("000000");//your code
//If returns true, you are logged in

//Remove 2FA from database: (first login() and login2fa())
db.Remove2FA();

Validating another application that uses 2FA using PassWords

//First, update an account and set the TwoFactorSecret property to your secret
var testaccount = accounts.First(a => a.Title == "MyAccount");
testaccount.TwoFactorSecret = "MYSECRET";

//Second, login into an application with MyAccount

//Generate key (remember => every 30 seconds it changes so you have to generate a new one) 
string code = Database.GenerateCode("MYSECRET");
//Enter the code and log in.

Generate a random string

Database.RandomString(10,true); //Length = 10, letters = true
Database.RandomString(15,true,true,true,true); //Length = 15, letters, capitals numbers and special chars

For further or more detailed usage of PassWordsCore, see the wiki (that will be added in the future)

Release Notes

Update: Add the function UpdateName() to change the name of the database and add an option to use a custom name when restoring a database. I also improved the in-code documentation.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.1.2 24 8/16/2019
2.1.1 50 8/3/2019
2.1.0 50 7/5/2019
2.0.3 50 6/27/2019
2.0.2 48 6/27/2019
2.0.1 48 6/27/2019
1.0.0 50 6/25/2019