这个 Base64_4 类提供了对数据进行 Base64 编码和解码的方法,并且在编码和解码过程中还会计算哈希值并校验数据完整性,以保证数据在传输过程中不被篡改。

Description

该示例将字符串 Hello, world! 进行了 Base64 编码,并输出了编码后的字符串。然后对编码后的字符串进行解码,并输出了解码后的数据。在编码和解码过程中,由于 Base64_4 类会计算哈希值并校验数据完整性,所以即使数据在传输过程中被篡改,也能够及时发现。

Example

// 导入 Base64_4 类
import { Base64_4 } from './Base64_4.ts'

// 要编码的字符串或数据
const data = 'Hello, world!'

// 对数据进行 Base64 编码
const encodedData = Base64_4._encbase64data(data)

// 输出编码后的字符串
console.log(encodedData)

// 对编码后的字符串进行解码
const decodedData = Base64_4._decbase64data(encodedData)

// 输出解码后的数据
console.log(decodedData)

Hierarchy

  • Base64_4

Constructors

Properties

I64BIT_TABLE: string[] = ...

Base64 编码使用的字符表,由 64 个大小写字母、数字和两个特殊符号组成。

Methods

  • 该方法用于对给定的 Base64 编码字符串进行解码,并返回解码后的数据。在对数据进行解码之前,会首先校验数据完整性,以确保数据在传输过程中没有被篡改。如果数据完整性校验失败,将会抛出一个错误。

    Throws

    如果输入字符串长度小于 20,则抛出异常

    Throws

    如果解码结果校验失败,则抛出异常

    Description

    可以看到,_decbase64data 方法既可以处理字符串类型的数据,也可以处理数字数组类型的数据,而且会在解码过程中检测数据完整性,以确保数据在传输过程中没有被篡改。该方法在数据接收端,用于对接收到的数据进行解码和校验,并返回原始数据。

    Example

    // 对字符串 'SGVsbG8sIHdvcmxkIQ==' 进行 Base64 解码
    const decodedData1 = Base64_4._decbase64data('SGVsbG8sIHdvcmxkIQ==')

    // 对编码后的字符串 'NkZUcDluYnhiR3h6' 进行 Base64 解码
    const decodedData2 = Base64_4._decbase64data('NkZUcDluYnhiR3h6')

    Parameters

    • str: string

      要解码的 Base64 编码字符串

    Returns any

    返回解码后的数据

  • 该方法用于对给定的数据进行 Base64 编码,并返回编码后的字符串。它接受一个任意类型的参数 data,可以是字符串、数字、数组等任何数据类型。在对数据进行编码之前,会先生成一些随机字符串,并将其与原始数据组合起来。然后,将组合后的数据进行哈希计算,并将计算得到的哈希值插入到组合后的数据中。最后,将组合后的数据进行 Base64 编码,并返回编码后的字符串。

    Description

    可以看到,_encbase64data 方法既可以处理字符串类型的数据,也可以处理数字数组类型的数据,而且会在编码过程中增加一些随机字符串和哈希值,以增加数据的安全性。该方法在数据传输过程中,用于将原始数据进行编码,并生成一些随机字符串和哈希值,以便在接收端对数据进行解码和校验。

    Example

    // 对字符串 'Hello, world!' 进行 Base64 编码
    const encodedStr1 = Base64_4._encbase64data('Hello, world!')

    // 对数字数组 [1, 2, 3, 4, 5] 进行 Base64 编码
    const encodedStr2 = Base64_4._encbase64data([1, 2, 3, 4, 5])

    Parameters

    • data: any

      要编码的数据

    Returns null | string

    返回编码后的字符串

  • 该方法用于计算输入字符串或数组的哈希值。它接受两个参数:要计算哈希值的字符串或数组 input,以及一个可选的布尔值参数 out,用于指示是否输出计算耗时到控制台。

    该方法采用了一种简单的哈希算法,可以对任何长度的字符串或数组进行计算,并输出固定长度的哈希值。在计算过程中,会对每个字符或元素进行特定的处理,并累加到哈希值中。最终,会使用 _hashcode 方法中定义的 Base64 字符表将哈希值转换为 6 位长度的字符串,以便在数据编码和解码过程中使用。

    Description

    可以看到,_hashcode 方法既可以处理字符串类型的数据,也可以处理数字数组类型的数据,而且可以根据需要输出计算耗时。该方法在数据编码和解码过程中,用于生成一些固定长度的哈希值,以便在数据传输过程中检测数据完整性和防止篡改。

    Example

    // 计算字符串 'Hello, world!' 的哈希值
    const hash1 = Base64_4._hashcode('Hello, world!')

    // 计算数字数组 [1, 2, 3, 4, 5] 的哈希值
    const hash2 = Base64_4._hashcode([1, 2, 3, 4, 5])

    Parameters

    • input: string | number[]

      要计算哈希值的字符串或数组

    • Optional out: boolean

      如果为 true,则输出计算耗时到控制台

    Returns string

    返回计算出的哈希值

  • 该方法用于生成指定长度的随机字符串。它接受两个参数:要生成的字符串长度 len 和包含可供选择的字符集的字符串 charSet(可选)。如果未指定 charSet 参数,则默认使用大小写字母和数字的组合作为字符集。

    Description

    可以看到,在使用 randomString 方法时只需要指定要生成的字符串长度即可,而字符集参数是可选的。如果需要指定字符集,则可以将其作为第二个参数传入。

    Example

    // 生成一个包含 10 个字符的随机字符串
    const randomStr1 = Base64_4.randomString(10)

    // 生成一个包含 20 个字符、由小写字母组成的随机字符串
    const randomStr2 = Base64_4.randomString(20, 'abcdefghijklmnopqrstuvwxyz')

    Parameters

    • len: number

      要生成的字符串长度

    • Optional charSet: string

      包含可供选择的字符集的字符串,如果未指定,则默认为大小写字母和数字的组合

    Returns string

    返回生成的随机字符串

Generated using TypeDoc