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" />
paket add BmpPwd --version 2.0.3
#r "nuget: BmpPwd, 2.0.3"
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 Framework256
bytes are used. For compatibility reasons, BmpPwd uses128
bytes on all platforms. See: Cipher.cs. UseBmpPwd.Encrypt
and supply a customCipher()
instance with a customkeysize
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 Framework256
bytes are used. For compatibility reasons, BmpPwd uses128
bytes on all platforms. See: Cipher.cs. UseBmpPwd.Encrypt
and supply a customCipher()
instance with a customkeysize
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
Dependencies
-
.NETStandard 2.0
- System.Drawing.Common (>= 4.7.0)
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.