simple_aes_cbc
This is a TypeScript module that provides a simple class for encryption and
decryption functionality. It uses the AES-CBC-algorithm and depends on the
global crypto, atob and btoa functions to perform the encryption and
decryption, so it can be used in deno >= 1.15 and node >= 16.0.0 .
Installation
deno
import { SimpleAesCbc } from "https://deno.land/x/simple_aes_cbc/mod.ts";node
npm install simple-aes-cbc
bun install simple-aes-cbc
yarn install simple-aes-cbc
... etcUsage
Here’s an example of how to use this module:
deno
import { SimpleAesCbc } from "https://deno.land/x/simple_aes_cbc/mod.ts";
const stringCrypto = new SimpleAesCbc("1234567890123456", crypto.subtle);
const data = "hello my friend";
const encrypted = await stringCrypto.encryptString(data);
const decrypted = await stringCrypto.decryptString(encrypted);
console.log(decrypted); // "hello my friend"node
import { webcrypto } from "node:crypto";
import { SimpleAesCbc } from "simple-aes-cbc";
const stringCrypto = new SimpleAesCbc("1234567890123456", webcrypto.subtle);
// ... same as aboveAPI
new SimpleAesCbc(privateKey: string, subtleCrypto: SubtleCrypto)
This is the constructor of the SimpleAesCbc class. It takes a privateKey and
a
subtleCrypto
as a parameter, which is used to encrypt and decrypt the data.
encrypt(data: BufferSource): Promise<ArrayBuffer>
This method encrypts the given data.
decrypt(data: BufferSource): Promise<ArrayBuffer>
This method decrypts the given data.
encryptString(data: string): Promise<string>
Encrypts the given string using the private key.
The encrypted string returned from this function might not be human readable or used safely in a URL.
If you want a human readable string that is safe to use, use encryptStringSafe instead.
decryptString(data: string): Promise<string>
Decrypts the given string using the private key.
This function expects the string to be in the same format as the one returned from encryptString.
If you want to decrypt a string that was encrypted using encryptStringSafe, use decryptStringSafe instead.
encryptStringToBase64(data: string): Promise<string>
Encrypts the given string to a base64 encoded string using the private key. The encrypted string returned from this function is human readable and safe to use in a URL.
decryptStringFromBase64(data: string): Promise<string>
Decrypts the given base64 encoded string using the private key.
This function expects the string to be in the same format as the one returned from encryptStringToBase64.
License
This module is licensed under the MIT License.