BmpPwd 2.0.3

A Library for en/decrypting text to Images

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

Using the default AES Cipher (Rijndael)

Note: On .NET Core and .NET Standard the Rijndael Implementation uses a key block-size of 128 bytes. On .NET Framework 256 bytes are used. For compatibility reasons, BmpPwd uses 128 bytes on all platforms. See: Cipher.cs. Use BmpPwd.Encrypt and supply a custom Cipher() instance with a custom keysize parameter.

Encrypt a string

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
var encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword", "The string to be encrypted");
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword", "The string to be encrypted")

⚠️: Be careful when saving the Image to not use lossy image compression, like JPEG. Lossy-compressing the Image will result in losing details and results in an un-decryptable image. Save as PNG or BMP to maintain pixel quality.

Decrypt an Image

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
string decryptedText = BmpPwd.Decrypt("MyPassword", encryptedImage);
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim decryptedText = BmpPwd.Decrypt("MyPassword", encryptedImage)

Custom Encryption Implementation

Implement your custom Encryption class

  • C#:
public class MyCryptoClass : ICrypto {
    // Implement Encrypt(..) and Decrypt(..) here
}
  • VB:
Public Class MyCryptoClass
    Implements ICrypto
        ' Implement Encrypt(..) and Decrypt(..) here
End Class

Use

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
var encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword",
                                     "The string to be encrypted",
                                     new MyCryptoClass(),
                                     BmpPwd.DrawingScheme.Square,
                                     BmpPwd.ColorScheme.BlueMixed);
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim encryptedImage = BmpPwd.BmpPwd.Encrypt(
    "MyPassword",
    "The string to be encrypted",
    new MyCryptoClass(),
    BmpPwd.DrawingScheme.Square,
    BmpPwd.ColorScheme.BlueMixed)

Using the default AES Cipher (Rijndael)

Note: On .NET Core and .NET Standard the Rijndael Implementation uses a key block-size of 128 bytes. On .NET Framework 256 bytes are used. For compatibility reasons, BmpPwd uses 128 bytes on all platforms. See: Cipher.cs. Use BmpPwd.Encrypt and supply a custom Cipher() instance with a custom keysize parameter.

Encrypt a string

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
var encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword", "The string to be encrypted");
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword", "The string to be encrypted")

⚠️: Be careful when saving the Image to not use lossy image compression, like JPEG. Lossy-compressing the Image will result in losing details and results in an un-decryptable image. Save as PNG or BMP to maintain pixel quality.

Decrypt an Image

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
string decryptedText = BmpPwd.Decrypt("MyPassword", encryptedImage);
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim decryptedText = BmpPwd.Decrypt("MyPassword", encryptedImage)

Custom Encryption Implementation

Implement your custom Encryption class

  • C#:
public class MyCryptoClass : ICrypto {
    // Implement Encrypt(..) and Decrypt(..) here
}
  • VB:
Public Class MyCryptoClass
    Implements ICrypto
        ' Implement Encrypt(..) and Decrypt(..) here
End Class

Use

  • C#:
using System.Drawing.Common;
using BmpPwd;
// ...
var encryptedImage = BmpPwd.BmpPwd.Encrypt("MyPassword",
                                     "The string to be encrypted",
                                     new MyCryptoClass(),
                                     BmpPwd.DrawingScheme.Square,
                                     BmpPwd.ColorScheme.BlueMixed);
  • VB:
Imports System.Drawing.Common
Imports BmpPwd
' ...
Dim encryptedImage = BmpPwd.BmpPwd.Encrypt(
    "MyPassword",
    "The string to be encrypted",
    new MyCryptoClass(),
    BmpPwd.DrawingScheme.Square,
    BmpPwd.ColorScheme.BlueMixed)

Release Notes

.NET Standard Package

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.0.3 85 5/29/2020
2.0.2 74 5/29/2020
2.0.1 61 5/20/2020
2.0.0 65 5/20/2020
1.0.0.8 390 2/16/2018
1.0.0.7 453 8/31/2017
1.0.0.7-fix 356 9/1/2017
1.0.0.6 596 2/3/2017
1.0.0.5 436 2/2/2017
1.0.0.4 559 2/2/2017