跨平台AES
使用AES进行简单的跨平台加密和解密。
npm i --save nativescript-crossplatform-aes

npm npm Build Status

跨平台AES

基于 Cross-Platform-AES 的简单跨平台256位AES加密/解密

注意: 我不是iOS或Android的专家。所以,如果您认为您能做得更好,请贡献吧 :)

支持的平台

  1. iOS
  2. Android
  3. NodeJS

功能

  1. 跨平台支持。加密-解密在iOS、Android和Node.js上均有效。

  2. 加密时自动添加随机IV,解密时移除第一个随机块。

  3. 支持加密和解密使用随机IV(初始化向量)。随机化对于加密方案实现语义安全至关重要,这种属性意味着在相同密钥下重复使用该方案不允许攻击者推断加密消息各部分之间的关系。

  4. 支持使用SHA-256对密钥进行散列。永远不要使用纯文本作为加密密钥。始终对纯文本密钥进行散列,然后用于加密。AES允许使用256位密钥。通过暴力破解256位对称密钥需要比128位密钥多128倍的计算能力。一个每秒可以检查十万亿(10^18)个AES密钥的设备,理论上需要约3×10^51年才能耗尽256位密钥空间。

安装

tns plugin add nativescript-crossplatform-aes

在NativeScript中的简单用法

import { CrossPlatformAES } from 'nativescript-crossplatform-aes';

let cryptLib = new CrossPlatformAES();
let plainText = "this is my plain text"
let key = "your key"

let cipherText = cryptLib.encryptPlainTextWithRandomIV(plainText, key);
console.log(cipherText);

let decryptedString = cryptLib.decryptCipherTextWithRandomIV(cipherText, key)
console.log(decryptedString);

其他自定义方法

encryptPlainTextWithSuppliedIV(plainText: string, key: string, iv: string);
decryptCipherTextWithSuppliedIV(cipherText: string, key: string, iv: string);
generateRandomIV16();

NodeJS

安装库

npm install @skavinvarnan/cryptlib --save

然后使用它

const cryptLib = require('@skavinvarnan/cryptlib');

const plainText = "this is my plain text";
const key = "your key";

const cipherText = cryptLib.encryptPlainTextWithRandomIV(plainText, key);
console.log('cipherText %s', cipherText);

const decryptedString = cryptLib.decryptCipherTextWithRandomIV(cipherText, key);
console.log('decryptedString %s', decryptedString);