Object 內置對象

對象Cipher

對稱加密算法對象

Cipher 對象屬於 crypto 模塊,創建:

1
var c = new crypto.Cipher(crypto.AES, crypto.ECB, ...);

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Cipher|new Cipher()|name;keySize;ivSize;blockSize|paddingMode();encrypt();decrypt()] [object] <:- [Cipher] Cipher new Cipher() name keySize ivSize blockSize paddingMode() encrypt() decrypt() object toString() toJSON()

構造函數

Cipher

Cipher 構造函數,僅用於ARC4 初始化

1 2
new Cipher(Integer provider, Buffer key);

調用參數:

  • provider: Integer, 指定加密算法
  • key: Buffer, 指定加密解密密碼

Cipher 構造函數

1 2 3
new Cipher(Integer provider, Integer mode, Buffer key);

調用參數:

  • provider: Integer, 指定加密算法
  • mode: Integer, 指定分組密碼工作模式
  • key: Buffer, 指定加密解密密碼

Cipher 構造函數

1 2 3 4
new Cipher(Integer provider, Integer mode, Buffer key, Buffer iv);

調用參數:

  • provider: Integer, 指定加密算法
  • mode: Integer, 指定分組密碼工作模式
  • key: Buffer, 指定加密解密密碼
  • iv: Buffer, 指定初始向量

成員屬性

name

String, 返回當前算法名稱

1
readonly String Cipher.name;

keySize

Integer, 返回當前算法密碼長度,以位為單位

1
readonly Integer Cipher.keySize;

ivSize

Integer, 返回當前算法初始向量長度,以字節為單位

1
readonly Integer Cipher.ivSize;

blockSize

Integer, 返回當前算法數據塊長度,以字節為單位

1
readonly Integer Cipher.blockSize;

成員函數

paddingMode

使用填充模式

1
Cipher.paddingMode(Integer mode);

調用參數:

  • mode: Integer, 指定填充模式,缺省為PADDING_PKCS7

encrypt

使用當前算法密碼加密數據

1
Buffer Cipher.encrypt(Buffer data) async;

調用參數:

  • data: Buffer, 指定要加密的數據

返回結果:

  • Buffer, 返回加密後的數據

decrypt

使用當前算法密碼解密數據

1
Buffer Cipher.decrypt(Buffer data) async;

調用參數:

  • data: Buffer, 指定要解密的數據

返回結果:

  • Buffer, 返回解密後的數據

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String Cipher.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value Cipher.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值