npm.io
1.0.0 • Published 8 years ago

fif-common-cipher

Licence
ISC
Version
1.0.0
Deps
3
Vulns
1
Weekly
0
DeprecatedThis package is deprecated

FIFTECH - Libreria de Cifrado y Descifrado

Libreria con metodos utiles para cifrar y descifrar la informacion de nuestros productos.

Es necesario setiar las llaves publica y privada antes de ocupar los metodos de cifrado con llave.

El padding es seteado por defecto con: constants.RSA_PKCS1_PADDING

CommonCipher

Metodos de ayuda para cifrar y descifrar

  • setPublicKey

    Setea la llave publica dentro de la libreria para que los metodos de cifrado la ocupen posteriormente

    Parámetro Tipo Valor esperado
    key String Una llave publica valida en formato string

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      CommonCipher.setPublicKey('-----BEGIN PUBLIC KEY-----\n' +
      'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0\n' +
      'FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/\n' +
      '3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB\n' +
      '-----END PUBLIC KEY-----');

  • setPrivateKey

    Setea la llave privada dentro de la libreria para que los metodos de descifrado la ocupen posteriormente

    Parámetro Tipo Valor esperado
    key String Una llave privada valida en formato string

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      CommonCipher.setPrivateKey('-----BEGIN RSA PRIVATE KEY-----\n' +
      'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp\n' +
      'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5\n' +
      '1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh\n' +
      '3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2\n' +
      'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX\n' +
      'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il\n' +
      'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF\n' +
      'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k\n' +
      'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl\n' +
      'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ\n' +
      '37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=\n' +
      '-----END RSA PRIVATE KEY-----');

  • encryptStringWithRSAPublicKey

    Cifra un texto dado en base a la llave publica ingresada anteriormente, el formato es utf-8.

    En caso de no encontrarse definida la llave publica se arroja un error

    Parámetro Tipo Valor esperado
    toEncrypt String Texto que se desea encriptar con la llave publica ingresada anteriormente

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const toEncrypt1 = 'BEML920313HMCLNS09'
      console.log(CommonCipher.encryptStringWithRSAPublicKey(toEncrypt1)) // CnmVHzPtU0dJlQvoXRq39PGObXLQtbPl4kerQJ9hRKAFINQpJwofgzmqsQP4tLbI3ymDTdSzoMGGbcIzLFvQTS5tdec9JBNhgvap6rTiGSbeO7kBhRJxVxku0NyI3wZ18oleSUa9Izo0AU3sSCo4olSCLo6DP2xUcV40+aecdGw=
    
      const toEncrypt2 = 'EJEMPLO2'
      console.log(CommonCipher.encryptStringWithRSAPublicKey(toEncrypt2)) // hnhSFJiZ+gcMgqd07oPkAnSos7pv1mp0tWmyd6c3EcMhA+yeDQklWOr+8fvyBFmqT2bdV09zGMy2FpQAt63LLvJ35uJqbZ4g2fF5pSWdT5aFUyGpnFEbQjST5s4Ug48MIloiGh+A4/PIpU56h8mZCH7C3uNa5dM/Fj2wAvjS4uU=

  • decryptStringWithRSAPrivateKey

    Descifra un texto dado en base a la llave privada ingresada anteriormente

    Parámetro Tipo Valor esperado
    toDecrypt String Un texto cifrado con la llave publica ingresada anteriormente

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const toDecrypt1 = 'hnhSFJiZ+gcMgqd07oPkAnSos7pv1mp0tWmyd6c3EcMhA+yeDQklWOr+8fvyBFmqT2bdV09zGMy2FpQAt63LLvJ35uJqbZ4g2fF5pSWdT5aFUyGpnFEbQjST5s4Ug48MIloiGh+A4/PIpU56h8mZCH7C3uNa5dM/Fj2wAvjS4uU='
      console.log(CommonCipher.decryptStringWithRSAPrivateKey(toDecrypt1)) // BEML920313HMCLNS09
    
      const toDecrypt2 = 'CnmVHzPtU0dJlQvoXRq39PGObXLQtbPl4kerQJ9hRKAFINQpJwofgzmqsQP4tLbI3ymDTdSzoMGGbcIzLFvQTS5tdec9JBNhgvap6rTiGSbeO7kBhRJxVxku0NyI3wZ18oleSUa9Izo0AU3sSCo4olSCLo6DP2xUcV40+aecdGw='
      console.log(CommonCipher.decryptStringWithRSAPrivateKey(toDecrypt2)) // EJEMPLO2

  • createSignature

    Devuelve un texto firmado en base a la llave ingresada

    Parámetro Tipo Valor esperado
    textToSign String texto a ser firmado
    key String llave para la firma

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const textToSign1 = 'texto a firmar'
      const key1 = 'key'
      console.log(CommonCipher.createSignature(textToSign1, key1)) // U2FsdGVkX1+RwXiCtZW7bCCpl/8uLS45ld76RCinKCRFSlUAwwQ+pBr3Z1LH1FkDrJZAAnK98adGTfZvu8nb0AvAl+PR9MU6IK6MRycifHgPaF8aOqj+s0esJp2ZuWyg

  • verifySignature

    Verifica que el texto cifrado corresponda con la firma creada a partir de la llave dada

    Parámetro Tipo Valor esperado
    payload String texto firmado
    key String llave con la que se cifro
    signatureIn String firma que se creo

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const payload1 = 'texto a firmar'
      const key1 = 'key'
      signatureIn1 = 'U2FsdGVkX1+RwXiCtZW7bCCpl/8uLS45ld76RCinKCRFSlUAwwQ+pBr3Z1LH1FkDrJZAAnK98adGTfZvu8nb0AvAl+PR9MU6IK6MRycifHgPaF8aOqj+s0esJp2ZuWyg'
      console.log(CommonCipher.verifySignature(payload1, key1, signatureIn1)) // true 
    
      const textToSign2 = 'este texto no es el que firme'
      const key2 = 'key'
      signatureIn2 = 'U2FsdGVkX1+RwXiCtZW7bCCpl/8uLS45ld76RCinKCRFSlUAwwQ+pBr3Z1LH1FkDrJZAAnK98adGTfZvu8nb0AvAl+PR9MU6IK6MRycifHgPaF8aOqj+s0esJp2ZuWyg'
      console.log(CommonCipher.verifySignature(payload2, key2, signatureIn2)) // false

  • encryptAllValuesFromObject

    Cifra todos los valores de un objeto

    Parámetro Tipo Valor esperado
    body String objeto javascript que queremos cifrar sus valores
    key String llave para firmar

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const body1 = {
          'nombre': 'orlando',
          'apellido': 'bustos',
          'cumpleaños': '06/06'
      }
      const key1 = 'sessionKey'
      
      console.log(CommonCipher.encryptAllValuesFromObject(body1, key1)) //  { nombre: 'U2FsdGVkX1/QIlHBVeJeTUaSVfKRTlzEP9AyutgT0IY=', apellido: 'U2FsdGVkX1/MBSG+U5Jcp+s/ls9sKrqjr2VHk8uNReE=', cumpleaños: 'U2FsdGVkX1+tcm/kYQYhjgCuxJ18ZL1htaphYakqXVY=' }

  • decryptAllValuesFromObject

    Descifra todos los valores de un objeto

    Parámetro Tipo Valor esperado
    bodyIn String Objeto javascript con sus valores cifrados
    sessionKey String llave de cifrado

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const body1 = {
          nombre: 'U2FsdGVkX1/QIlHBVeJeTUaSVfKRTlzEP9AyutgT0IY=',
          apellido: 'U2FsdGVkX1/MBSG+U5Jcp+s/ls9sKrqjr2VHk8uNReE=',
          cumpleaños: 'U2FsdGVkX1+tcm/kYQYhjgCuxJ18ZL1htaphYakqXVY='
      }
      const key1 = 'sessionKey'
      
      console.log(CommonCipher.decryptAllValuesFromObject(body1, key1)) //  {'nombre': 'orlando', 'apellido': 'bustos', 'cumpleaños': '06/06'}

  • aesEncrypt

    Cifra un texto utilizando el metodo AES

    Parámetro Tipo Valor esperado
    plainText String Texto a cifrar
    key String llave para el cifrado

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const text1 = 'Texto a cifrar'
      const key1 = 'key'
      
      console.log(CommonCipher.aesEncrypt(text1, key1)) // U2FsdGVkX1810E7huRN6xXzPp8Di2b092tz21MPx0s4=

  • aesDecrypt

    Descifra un texto con el metodo AES

    Parámetro Tipo Valor esperado
    cipherAEStext String Texto a descifrar
    key String llave para cifrado

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const text1 = 'U2FsdGVkX1810E7huRN6xXzPp8Di2b092tz21MPx0s4'
      const key1 = 'key'
      
      console.log(CommonCipher.aesDecrypt(text1, key1)) // Texto a cifrar

  • sha256

    Cifra un texto utilizando el algoritmo SHA-256

    Parámetro Tipo Valor esperado
    textToDigest String Texto a cifrar

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const text1 = 'Texto a digerir'
      console.log(CommonCipher.sha256(text1)) // a83eb0ec95daa8b83f72bd21ebb5087ec90c70819f573ba9bcd16670b5d8876c

  • generateRandomKey

    Genera una llave aleatoria segun un largo dado.

    Parámetro Tipo Valor esperado
    keyLength Number Largo de la llave a generar (128/192/256)

    Ejemplos de uso

      import { CommonCipher } from 'fif-common-cipher'
    
      const keyLength1 = 256
      console.log(CommonCipher.generateRandomKey(keyLength1)) // 60efbeab4b0c666041377b8931cb74513b1ed48343a41f8a31f7912a5cd998ae
    
      const keyLength2 = '192'
      console.log(CommonCipher.generateRandomKey(keyLength2)) // b69b7318c2008b8f592587f06cd2eabd601a97c8383609c0
    
      const keyLength3 = '128'
      console.log(CommonCipher.generateRandomKey(keyLength3)) // 3abce289a39e6eb53f9834f59e72cddc

Keywords