Saltar al contenido

Hoja de cálculo de Google: cifre el contenido de la celda con Google Apps Script

Solución:

Bueno, diré esto, porque este es el método que usé con Date JS. Puede hacer lo siguiente:

  1. Descargue los archivos .js de origen.
  2. Abra el (los) archivo (s) .js en un editor de texto
  3. Copie / pegue todo el código en un nuevo Proyecto de guion
    • aquí puede “recrear” los archivos .js originales (copiar / pegar la fuente individualmente) con los mismos nombres
  4. Incluir la clave del proyecto de ese Proyecto de Guión como Biblioteca del proyecto en el que desea utilizar esas funciones.

Incluso si los proyectos son de código abierto, querrá asegurarse de cumplir con las licencias de esos proyectos si los va a utilizar.

Esto es básicamente un pequeño “truco” para no poder cargar archivos .js en Proyectos GAS. Suponiendo que JS es estándar, este método funcionará con el sistema de Google.


La otra opción es simplemente encontrar un paquete criptográfico liviano de una o dos funciones, o un algoritmo criptográfico único como AES-128 (que, por supuesto, tiene permiso para usar). Realmente depende de la cantidad de cifrado que desee, si necesita invertir el texto cifrado para obtener los valores sin formato, etc.

Si se trata de algún tipo de sistema de contraseñas, recomendaría usar un hash simple. Por ejemplo:

function stringHash (someString) {
    var hash = 0;
    if (this.length == 0) return hash;
    for (i = 0; i < this.length; i++) {
        char = this.charCodeAt(i);
        hash = ((hash << 5) - hash) + char;
        hash = hash & hash;
    }
    return Math.abs(hash); // Personally I don't like negative values, so I abs'd it
}

en el que pediría la contraseña de un usuario, y si el hash de la contraseña coincidía con el hash almacenado en la hoja de cálculo o en cualquier otro lugar, entonces validaría. Puede usar esto para simular el inicio de sesión en una GUI de UiApp, por ejemplo: almacenar nombres de usuario / hash de contraseña en una base de datos y validar un usuario antes de cargar la aplicación “real”.


Sin embargo, como mencionó Serge, las hojas de cálculo contendrán el historial de revisión del valor original antes de que se haya aplicado el hash, así como el valor después de que se haya aplicado el hash. Si quiere evitar esto, use ScriptDB.


PD – además de esta solución alternativa, diré que actualmente no es posible “importar” una biblioteca de código que no sea GAS en su Proyecto de secuencia de comandos, a menos que copie manualmente el archivo fuente por archivo en su Proyecto de secuencia de comandos. Es posible que ya haya una solicitud de función en el Rastreador de problemas, de lo contrario, puede crear una y la destacaré.


EDITAR: Según la solicitud, he incluido un “paquete” de cifrado AES de código abierto (también contiene base64, lo cual es bueno) en la respuesta, para que sirva de referencia para otros que quieran cifrar en GAS. Asegúrese de seguir la solicitud del autor, que es conservar sus derechos de autor originales y vincular a la fuente.

Además del AES que vinculé y el hash simple (equivalente a String.hashCode () de Java), cuyo recurso se puede encontrar aquí, está Crypto-JS como mencionó en su pregunta y, si se tomó el tiempo para copiar completamente / pegue todo el código (suponiendo que esté de acuerdo con los términos de la licencia, no lo he leído), puede usarlo siguiendo los pasos que describí en la mitad superior de mi respuesta.

MD5 en Javascript también es un algoritmo que puede utilizar. Si usa el código en md5.js que se encuentra en la parte superior de la página, tendrá lo que necesita. Nuevamente, asegúrese de seguir las reglas de licencia si lo usa.

Personalmente, probablemente usaría el picadillo y el base-64 patrones, ya que la mayor parte de para qué usaría este cifrado probablemente no sea increíblemente importante. AES puede tardar un poco más en calcularse; probablemente pueda compararlo usted mismo para ver si causará problemas importantes con los activadores que se ejecutan durante un período prolongado de tiempo, pero dudo que sea un problema de todos modos.

Nota: base-64 es bidireccional, también lo es AES. MD5 es un tipo de hash, y la función hash simple que proporcioné también es (por supuesto) un hash. Las funciones hash son unidireccionales. Entonces, si necesita una funcionalidad bidireccional (cifrar / descifrar), utilice base-64 o AES. Base-64 es esencialmente la versión para niños de AES. Y la función hash simple es la versión para niños de MD5. Mantén esto en mente 🙂

Editar de nuevo: No estoy familiarizado con el desarrollo de iOS o sus componentes internos, pero parece para mí, iOS puede al menos hacer algunas operaciones criptográficas. Sin embargo, es posible que desee leer más sobre esos métodos, porque no estoy realmente seguro de cómo está juntando GAS e iOS; Desafortunadamente, no puedo brindarle más ayuda en esa área.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *