es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo usar una firma digital en jsrsasign.js con caracteres chinos.

Necesito interfaz con organizaciones de terceros. Necesitan agregar una firma digital a los datos y colocarlos en el encabezado de la solicitud.

Encontré que jsrsasign.js podría ser útil, así que estoy usando eso para hacer la firma digital, pero siempre obtengo el resultado incorrecto.

Mi código:

import { RSAKey, KEYUTIL, KJUR, hex2b64 } from 'jsrsasign'
export function signature (url) {
  // Crear objeto RSAKey
  var rsa = new RSAKey()
  let k = '-----BEGIN PRIVATE KEY-----x-----END PRIVATE KEY-----'
  // Convertir la clave a formato codificado
  rsa = KEYUTIL.getKey(k)
  // Crear objeto Signature, configurar el algoritmo de codificación de la firma
  var sig = new KJUR.crypto.Signature({'alg': 'SHA256withRSA'})
  // Inicializar
  sig.init(rsa)
  console.log('***url***', url)
  // Pasar la cadena a encriptar
  sig.updateString(url)
  // Generar el texto cifrado
  var sign = hex2b64(sig.sign())
  console.log('**sign**', sign)
  return sign
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas con la generación incorrecta de la firma digital utilizando jsrsasign.js. Verifica que estés utilizando la clave privada correcta y que esté correctamente formateada. También puedes querer verificar que el algoritmo de codificación que estás utilizando sea apropiado para los datos que estás intentando firmar. Además, asegúrate de que los datos que estás pasando a la función sig.updateString() estén correctamente formateados y representen correctamente los datos que necesitan ser firmados.

Comments are closed.