Giter VIP home page Giter VIP logo

piihide's Introduction

PII Hide

This is an experimental library that aims to make it simple to encrypt/decrypt specific properties on an object.

PiiHide on Nuget NuGet Status

Features

  • Easy marking of personally identifiable information with the PIIAttribute
  • Symmetric encryption of properties using AES
  • Idempotent encryption and decryption
  • Support for string, DateTime, and DateTimeOffset properties contained in a complex class
  • Support for nested properties of complex type

Usage

C#

Although the library is written in F#, it does provide extension methods OR access via a static Encryption class that respects the C# naming conventions.

Mark the sensitive information with the PIIAttribute.

using PIIHide;
//...
public class Person
{
    public long Id { get; set; }
    [PII]
    public string Name { get; set; }
    [PII]
    public Address Address { get; set; }
}

public class Address
{
    [PII]
    public string Street { get; set; }
    [PII]
    public string PostalCode { get; set; }
    public string Country { set; get; }
}

Then generate a key and call Encrypt/Decrypt on an instance of your class.

using PIIHide;
using PIIHide.CSharp.Extensions;
//...
var key = PII.GenerateKey();
var person = MakePerson();
person.Encrypt(key);
person.Decrypt(key);

OR

using PIIHide;
using PIIHide.CSharp;
//...
var key = PIIEncryption.GenerateKey();
var person = MakePerson();
PIIEncryption.Encrypt(key, person);
PIIEncryption.Decrypt(key, person);

See the sample for what this would look like.

F#

let person = aPerson()
let key = aKey()
PII.hide key person |> ignore
PII.show key person |> ignore

piihide's People

Contributors

dburriss avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

piihide's Issues

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.