目录

使用SCRYPT进行密钥派生(ArkTS)

对应的算法规格请查看密钥派生算法规格:SCRYPT。

开发步骤

  1. 构造ScryptSpec对象,作为密钥派生参数进行密钥派生。

    ScryptSpec是KdfSpec的子类,需要指定:

    • algName:指定算法名为'SCRYPT'。

    • passphrase:用于生成派生密钥的原始密码。

      如果使用string类型,需要直接传入用于密钥派生的数据,而不是HexString、Base64等字符串类型。同时需要确保该字符串为utf-8编码,否则派生结果会有差异。

    • salt:盐值。

    • n:迭代次数,需要为正整数。

    • p:并行化参数,需要为正整数。

    • r:块大小参数,需要为正整数。

    • maxMemory:最大内存限制参数,需要为正整数。

    • keySize:目标密钥的字节长度,需要为正整数。

  2. 调用cryptoFramework.createKdf,指定字符串参数'SCRYPT',创建密钥派生算法为SCRYPT的密钥派生函数对象(Kdf)。

  3. 输入SCRYPT对象,调用Kdf.generateSecret进行密钥派生。

    Kdf.generateSecret的多种调用形式如表所示。

    接口名 返回方式
    generateSecret(params: KdfSpec, callback: AsyncCallback<DataBlob>): void callback异步生成。
    generateSecret(params: KdfSpec): Promise<DataBlob> Promise异步生成。
    generateSecretSync(params: KdfSpec): DataBlob 同步生成。