ZH
测试版翻译

@core / antispam

1.1.0 ▾
已验证MIT
GitHub

公开表单反垃圾:蜜罐字段、签名计时、Turnstile 或 hCaptcha 以及 Postgres 限流

代码9 个文件上下文约 722 个 token扫描通过

应用 .genpmignore 后将被注入的确切目录树。固定于

src/lib/antispam/crypto.ts只读 · 0328b98
// Utilidades criptográficas con Web Crypto (Node, Workers y navegador).
const enc = new TextEncoder();

const hex = (buf: ArrayBuffer) => [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, '0')).join('');

export async function sha256Hex(data: string): Promise<string> {
  return hex(await crypto.subtle.digest('SHA-256', enc.encode(data)));
}

export async function hmacHex(secret: string, data: string): Promise<string> {
  const key = await crypto.subtle.importKey('raw', enc.encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
  return hex(await crypto.subtle.sign('HMAC', key, enc.encode(data)));
}

export function safeEqual(a: string, b: string): boolean {
  let d = a.length ^ b.length;
  for (let i = 0; i < Math.max(a.length, b.length); i++) d |= (a.charCodeAt(i) || 0) ^ (b.charCodeAt(i) || 0);
  return d === 0;
}

举报 @core/antispam

使用 GitHub 登录后才能举报包。