aardio 文档

BouncyCastle.SM4 库模块帮助文档

BouncyCastle 成员列表 #

BouncyCastle.SM4 #

国密 SM4 对称加密算法扩展库。

相关库: crypt.sm4, BouncyCastle.SM2, BouncyCastle.SM3

BouncyCastle.SM4() #

返回对象:BouncyCastleSM4Object

BouncyCastle.SM4(mode,key,iv,aad) #

创建 SM4 算法工具。
参数 @mode:加密模式(大写字符串),可指定为 "ECB","CBC","CTR","GCM","OFB","CFB" 之一。

BouncyCastleSM4Object 成员列表 #

BouncyCastleSM4Object.aad #

默认的附加认证数据(Additional Authenticated Data),仅 GCM 模式需要指定。

BouncyCastleSM4Object.bufferSize #

用于指定 encryptFile、decryptFile 函数读写文件的缓冲区大小。
默认 1MB

BouncyCastleSM4Object.createDecryptStream #

创建解密流对象

BouncyCastleSM4Object.createDecryptStream(key,iv) #

参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,初始化向量,不指定则使用 initVector 属性或自动生成
返回解密流对象,包含 update、final 方法

BouncyCastleSM4Object.createEncryptStream #

创建加密流对象

BouncyCastleSM4Object.createEncryptStream(key,iv) #

参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,初始化向量,不指定则使用 initVector 属性或自动生成
返回加密流对象,包含 update、final 方法和 iv 属性

BouncyCastleSM4Object.decrypt #

SM4 解密

BouncyCastleSM4Object.decrypt(encryptedData,key,iv,aad) #

参数 @encryptedData 指定要解密的数据(字符串或 buffer)
参数 @key 可选,指定密钥,不指定则使用 key 属性。
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性。
如果 @iv 为空字符串 "" 或者 @iv 参数与 initVector 属性都是 null 值,则从加密数据头部读取 IV。
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性。
返回解密后的数据(buffer 类型)

BouncyCastleSM4Object.decryptBase64 #

从 Base64 字符串解密

BouncyCastleSM4Object.decryptBase64(base64Data,key,iv,aad) #

参数 @base64Data 指定 Base64 格式的密文
参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性
如果 @iv 为空字符串 "" 或者 @iv 参数与 initVector 属性都是 null 值,则从密文头部读取 IV
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性
返回解密后的数据(buffer 类型)

BouncyCastleSM4Object.decryptFile #

文件解密

BouncyCastleSM4Object.decryptFile(inputPath,outputPath,key,iv) #

参数 @inputPath 指定输入文件路径。
参数 @outputPath 指定输出文件路径。
参数 @key 可选,指定密钥,不指定则使用 key 属性。
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性。
如果 @iv 为空字符串 "" 或者 @iv 参数与 initVector 属性都是 null 值,则从文件头部读取 IV。
返回布尔值,表示是否成功

BouncyCastleSM4Object.decryptHex #

从十六进制字符串解密

BouncyCastleSM4Object.decryptHex(hexData,key,iv,aad) #

参数 @hexData 指定十六进制格式的密文
参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性
如果 @iv 为空字符串 "" 或者 @iv 参数与 initVector 属性都是 null 值,则从密文头部读取 IV
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性
返回解密后的数据(buffer 类型)

BouncyCastleSM4Object.deriveKey #

密钥派生函数(基于 SM3)

BouncyCastleSM4Object.deriveKey(password,salt,iterations,keyLength) #

参数 @password 指定密码(字符串或 buffer)
参数 @salt 指定盐值(字符串或 buffer)
参数 @iterations 可选,迭代次数,默认 1000
参数 @keyLength 可选,派生密钥长度(字节),默认 16 字节
返回派生的密钥(buffer 类型)

BouncyCastleSM4Object.encrypt #

SM4 加密

BouncyCastleSM4Object.encrypt(data,key,iv,aad) #

参数 @data 指定要加密的数据(字符串或 buffer)
参数 @key 可选,指定密钥,不指定则使用 key 属性。
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性或自动生成。
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性。
返回加密后的数据,非 ECB 模式时返回两个值:密文,IV

BouncyCastleSM4Object.encryptBase64 #

SM4 加密并返回 Base64 字符串

BouncyCastleSM4Object.encryptBase64(data,key,iv,aad) #

参数 @data 指定要加密的数据(字符串或 buffer)
参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性或自动生成
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性
返回加密后的 Base64 字符串

BouncyCastleSM4Object.encryptFile #

文件加密

BouncyCastleSM4Object.encryptFile(inputPath,outputPath,key,iv) #

参数 @inputPath 指定输入文件路径
参数 @outputPath 指定输出文件路径
参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,初始化向量,未提供时使用 initVector 属性或自动生成并写入文件。
返回布尔值,表示是否成功

BouncyCastleSM4Object.encryptHex #

SM4 加密并返回十六进制字符串

BouncyCastleSM4Object.encryptHex(data,key,iv,aad) #

参数 @data 指定要加密的数据(字符串或 buffer)
参数 @key 可选,指定密钥,不指定则使用 key 属性
参数 @iv 可选,非 ECB 模式的初始化向量,不指定则使用 initVector 属性或自动生成
参数 @aad 可选,GCM 模式的附加认证数据,不指定则使用 aad 属性
返回加密后的十六进制字符串

BouncyCastleSM4Object.generateIV() #

生成随机的初始化向量(IV)
返回 16 字节的 IV(buffer 类型)

BouncyCastleSM4Object.generateKey() #

生成随机的 SM4 密钥
返回 16 字节的密钥(buffer 类型)

BouncyCastleSM4Object.initVector #

初始化向量(字符串或 buffer),
GCM 模式用于指定 Nonce (Number Used Once)。
如果指定 32 位或 24 位(GCM)16 进制编码字符串则自动解码。
否则如果超出或小于 16 字节在加解密时会自动截长补短(补空字符)

BouncyCastleSM4Object.key #

16 位默认密钥(字符串或 buffer)。
如果指定 32 个字符的 16 进制编码文本则自动解码,
否则如果超出或小于 16 字节在加解密时会自动截长补短(补空字符)

BouncyCastleSM4Object.padding #

填充模式,字符串值或 null 值。
可指定为 null、"PKCS7"、"ZEROS"、"ISO10126" 之一。
GCM 模式默认为 null,其他模式默认为 "PKCS7"

Markdown 格式