secure-bits-encryption

1.0.1 • Public • Published

SecureBits Encryption

secure-bits-encryption es una biblioteca de encriptación robusta y fácil de usar que proporciona métodos para encriptar y desencriptar datos utilizando AES-GCM. Es perfecta para asegurar la confidencialidad de tus datos en aplicaciones web.

Instalación

Puedes instalar secure-bits-encryption usando npm:

npm install secure-bits-encryption

usando yarn:

yarn add secure-bits-encryption

Usar

Asegúrate de tener una clave ( base64Key) y un vector de inicialización ( base64Iv) en formato base64.

JavaScript puro

const SecureBits = require('secure-bits-encryption');

const base64Key = 'tu_clave_base64';
const base64Iv = 'tu_iv_base64';
const data = 'Mensaje secreto';

SecureBits.encryptSecurely(data, base64Key, base64Iv)
  .then(({ ciphertext, tag, iv }) => {
    console.log('Encrypted:', ciphertext, 'Tag:', tag, 'IV:', iv);

    SecureBits.decryptSecurely(ciphertext, tag, base64Key, iv)
      .then(decryptedData => {
        console.log('Decrypted:', decryptedData);
      })
      .catch(error => {
        console.error('Decryption failed:', error);
      });
  })
  .catch(error => {
    console.error('Encryption failed:', error);
  });

React

import React, { useState } from 'react';
import SecureBits from 'secure-bits-encryption';

const SecureComponent = () => {
  const base64Key = 'tu_clave_base64';
  const base64Iv = 'tu_iv_base64';
  const [message, setMessage] = useState('');
  const [encryptedData, setEncryptedData] = useState(null);
  const [decryptedData, setDecryptedData] = useState('');

  const handleEncrypt = async () => {
    try {
      const encrypted = await SecureBits.encryptSecurely(message, base64Key, base64Iv);
      setEncryptedData(encrypted);
      console.log('Encrypted:', encrypted);
    } catch (error) {
      console.error('Encryption failed:', error);
    }
  };

  const handleDecrypt = async () => {
    if (!encryptedData) return;
    try {
      const decrypted = await SecureBits.decryptSecurely(encryptedData.ciphertext, encryptedData.tag, base64Key, encryptedData.iv);
      setDecryptedData(decrypted);
      console.log('Decrypted:', decrypted);
    } catch (error) {
      console.error('Decryption failed:', error);
    }
  };

  return (
    <div>
      <input type="text" value={message} onChange={e => setMessage(e.target.value)} placeholder="Mensaje" />
      <button onClick={handleEncrypt}>Encriptar</button>
      {encryptedData && <p>Datos encriptados: {encryptedData.ciphertext}</p>}
      <button onClick={handleDecrypt} disabled={!encryptedData}>Desencriptar</button>
      {decryptedData && <p>Datos desencriptados: {decryptedData}</p>}
    </div>
  );
};

export default SecureComponent;

Vue

<template>
  <div>
    <input v-model="message" type="text" placeholder="Mensaje" />
    <button @click="handleEncrypt">Encriptar</button>
    <p v-if="encryptedData">Datos encriptados: {{ encryptedData.ciphertext }}</p>
    <button @click="handleDecrypt" :disabled="!encryptedData">Desencriptar</button>
    <p v-if="decryptedData">Datos desencriptados: {{ decryptedData }}</p>
  </div>
</template>

<script>
import SecureBits from 'secure-bits-encryption';

export default {
  data() {
    return {
      base64Key: 'tu_clave_base64',
      base64Iv: 'tu_iv_base64',
      message: '',
      encryptedData: null,
      decryptedData: ''
    };
  },
  methods: {
    async handleEncrypt() {
      try {
        this.encryptedData = await SecureBits.encryptSecurely(this.message, this.base64Key, this.base64Iv);
        console.log('Encrypted:', this.encryptedData);
      } catch (error) {
        console.error('Encryption failed:', error);
      }
    },
    async handleDecrypt() {
      if (!this.encryptedData) return;
      try {
        this.decryptedData = await SecureBits.decryptSecurely(this.encryptedData.ciphertext, this.encryptedData.tag, this.base64Key, this.encryptedData.iv);
        console.log('Decrypted:', this.decryptedData);
      } catch (error) {
        console.error('Decryption failed:', error);
      }
    }
  }
};
</script>

Mint Lang

component SecureComponent {
  state base64Key : String = "tu_clave_base64"
  state base64Iv : String = "tu_iv_base64"
  state message : String = ""
  state encryptedData : Maybe(String) = Nothing
  state decryptedData : String = ""

  fun encrypt() : Promise(Never, String) {
    SecureBits.encryptSecurely(message, base64Key, base64Iv)
      |> Promise.then((result : String) => {
          encryptedData = Just(result)
          Console.log("Encrypted: " + result)
        }, (error : Error) => {
          Console.error("Encryption failed: " + error.message)
        })
  }

  fun decrypt() : Promise(Never, String) {
    case encryptedData {
      Just(encrypted) => {
        SecureBits.decryptSecurely(encrypted, base64Key, base64Iv)
          |> Promise.then((result : String) => {
              decryptedData = result
              Console.log("Decrypted: " + result)
            }, (error : Error) => {
              Console.error("Decryption failed: " + error.message)
            })
      }
      Nothing => {
        Console.log("No data to decrypt")
      }
    }
  }

  fun render : Html {
    <div>
      <input type="text" value={message} onChange={message = event.target.value} placeholder="Mensaje" />
      <button onClick={encrypt}>Encriptar</button>
      {encryptedData != Nothing ? <p>{"Datos encriptados: " + encryptedData}</p> : ""}
      <button onClick={decrypt} disabled={encryptedData == Nothing}>Desencriptar</button>
      <p>{"Datos desencriptados: " + decryptedData}</p>
    </div>
  }
}

Contribuciones

Las contribuciones son siempre bienvenidas. Por favor, lee el CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta, y el proceso para enviarnos pull requests.

Licencia

Este proyecto está bajo la Licencia [ISC]. Lee el archivo LICENSE para más detalles.

Si tienes alguna pregunta o necesitas soporte, no dudes en contactar al equipo de SecureBits Encryption o abrir un issue en el repositorio.

Contribuciones

Las contribuciones son siempre bienvenidas. Por favor, lee el CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta, y el proceso para enviarnos pull requests.

Licencia

Este proyecto está bajo la Licencia [ISC]. Lee el archivo LICENSE para más detalles.

Si tienes alguna pregunta o necesitas soporte, no dudes en contactar al equipo de SecureBits o abrir un issue en el repositorio.

Package Sidebar

Install

npm i secure-bits-encryption

Weekly Downloads

3

Version

1.0.1

License

ISC

Unpacked Size

17.3 kB

Total Files

7

Last publish

Collaborators

  • luispm