这个类实现了 SM4 对称加密算法的 CBC 模式。它包含了加密和解密两个方法,分别用于对输入数据进行加密和解密操作。

Description

这个类提供了一种简单易用的方式来使用 SM4 算法进行数据加密和解密。你可以通过配置加密密钥和初始化向量来保证加密的安全性。同时,该类还提供了一个异常捕获机制,能够在加密或解密失败时报告错误信息,帮助你更好地排查问题。

在下面的示例中,我们首先创建了一个 SM4 的实例,并设置了默认的加密密钥和初始化向量(可选)。然后,我们使用 encryptData_CBC() 方法将一个字符串进行加密,并将输出结果打印到控制台上。接着,我们使用 decryptData_CBC() 方法将加密后的数据进行解密,并将解密结果打印到控制台上。

Example

const sm4 = new SM4()

// 设置默认密钥和初始化向量(可选)
sm4.secretKey = '1234567890abcdef'
sm4.iv = '0123456789abcdef'

// 加密
const plainText = 'Hello, world!'
const cipherText = sm4.encryptData_CBC(plainText)
console.log(cipherText) // 输出:Buffer <xx xx xx xx ...>

// 解密
const decryptedText = sm4.decryptData_CBC(cipherText)
console.log(decryptedText) // 输出:'Hello, world!'

Hierarchy

  • SM4

Constructors

Properties

Methods

Constructors

Properties

iv: string = ''

默认的初始化向量。

secretKey: string = ''

默认的加密密钥。

Methods

  • 使用 SM4 对称加密算法的 CBC 模式解密输入数据。

    Description

    这个方法在 SM4 类中的作用是:对输入数据进行 SM4 对称加密算法的 CBC 模式解密。它接受三个参数:要解密的数据、加密密钥和初始化向量。其中,加密密钥和初始化向量是可选参数,如果未指定则会使用类中默认的值。该方法返回经过解密后的数据,以字符串的形式表示。

    在下面的示例中,我们创建了一个 SM4 的实例,并设置了默认的加密密钥和初始化向量(可选)。然后,我们使用 decryptData_CBC() 方法将一个经过加密的数据进行解密,并将解密结果打印到控制台上。

    Example

    // 创建一个 SM4 实例
    const sm4 = new SM4()

    // 设置默认密钥和初始化向量(可选)
    sm4.secretKey = '1234567890abcdef'
    sm4.iv = '0123456789abcdef'

    // 解密一个字符串
    const cipherText = Buffer.from('xx xx xx xx ...', 'hex')
    const decryptedText = sm4.decryptData_CBC(cipherText)
    console.log(decryptedText) // 输出:'Hello, world!'

    Parameters

    • cipherText: string

      要解密的数据,必须为经过加密后的数据,以 Buffer 对象的形式表示。

    • Optional _key: string

      加密密钥,可选参数。如果未指定,则使用类中默认的密钥。

    • Optional _iv: string

      初始化向量,可选参数。如果未指定,则使用类中默认的向量。

    Returns null | string

    返回经过解密后的数据,以字符串的形式表示;如果解密失败则返回 null

  • 使用 SM4 对称加密算法的 CBC 模式加密输入数据。

    Description

    这个方法在 SM4 类中的作用是:对输入数据进行 SM4 对称加密算法的 CBC 模式加密。它接受三个参数:要加密的数据、加密密钥和初始化向量。其中,加密密钥和初始化向量是可选参数,如果未指定则会使用类中默认的值。该方法返回经过加密后的数据,以 Buffer 对象的形式表示。

    在下面的示例中,我们创建了一个 SM4 的实例,并设置了默认的加密密钥和初始化向量(可选)。然后,我们使用 encryptData_CBC() 方法将一个字符串进行加密,并将输出结果打印到控制台上。

    Example

    // 创建一个 SM4 实例
    const sm4 = new SM4()

    // 设置默认密钥和初始化向量(可选)
    sm4.secretKey = '1234567890abcdef'
    sm4.iv = '0123456789abcdef'

    // 加密一个字符串
    const plainText = 'Hello, world!'
    const cipherText = sm4.encryptData_CBC(plainText)
    console.log(cipherText) // 输出:<Buffer xx xx xx xx ...>

    Parameters

    • plainText: string

      要加密的数据,必须为字符串类型。

    • Optional _key: string

      加密密钥,可选参数。如果未指定,则使用类中默认的密钥。

    • Optional _iv: string

      初始化向量,可选参数。如果未指定,则使用类中默认的向量。

    Returns any

    返回经过加密后的数据,以 Buffer 对象的形式表示;如果加密失败则返回 null

Generated using TypeDoc