1.0.0 • Published 8 years ago

fif-common-cipher v1.0.0

Weekly downloads
-
License
ISC
Repository
bitbucket
Last release
8 years ago

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ámetroTipoValor esperado
    keyStringUna 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ámetroTipoValor esperado
    keyStringUna 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ámetroTipoValor esperado
    toEncryptStringTexto 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ámetroTipoValor esperado
    toDecryptStringUn 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ámetroTipoValor esperado
    textToSignStringtexto a ser firmado
    keyStringllave 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ámetroTipoValor esperado
    payloadStringtexto firmado
    keyStringllave con la que se cifro
    signatureInStringfirma 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ámetroTipoValor esperado
    bodyStringobjeto javascript que queremos cifrar sus valores
    keyStringllave 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ámetroTipoValor esperado
    bodyInStringObjeto javascript con sus valores cifrados
    sessionKeyStringllave 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ámetroTipoValor esperado
    plainTextStringTexto a cifrar
    keyStringllave 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ámetroTipoValor esperado
    cipherAEStextStringTexto a descifrar
    keyStringllave 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ámetroTipoValor esperado
    textToDigestStringTexto 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ámetroTipoValor esperado
    keyLengthNumberLargo 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

1.0.0

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago