PassWordsCore 2.1.2

Additional Details

I'm no longer supporting this libary. I wrote it several years ago when I was less skilled. Use at your own risk!
If you have any questions or need help, contact me via Github

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package PassWordsCore --version 2.1.2
NuGet\Install-Package PassWordsCore -Version 2.1.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<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
#r "nuget: PassWordsCore, 2.1.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PassWordsCore as a Cake Addin
#addin nuget:?package=PassWordsCore&version=2.1.2

// Install PassWordsCore as a Cake Tool
#tool nuget:?package=PassWordsCore&version=2.1.2

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)

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated

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.