Я предлагаю обходной путь, указанный ниже. Я не уверен насчет воздействия на безопасность, но это помогает до тех пор, пока кто-нибудь не предоставит поддержку криптографии здесь: https://github.com/denoland/deno/tree/master/std/node/#commonjs -module-loading или build означает собственный крипто-модуль (поддерживает не только scrypt).
метод обозначения
import { exec, IExecResponse, OutputMode } from "https://deno.land/x/exec/mod.ts";
const passwordHasher = async (password: string, salt: string) => {
const output: IExecResponse = await exec(
`node ./node_scripts/pbkdf2.js --string ${password} --salt ${salt}`,
{output: OutputMode.Capture}
);
return output.output;
}
export default passwordHasher;
pbkdf2. js скрипт узла
const crypto = require('crypto');
const argv = require('minimist')(process.argv.slice(2));
console.log(
crypto.pbkdf2Sync(argv.string, argv.salt, 100000, 64, 'sha512').toString('hex')
);