Электронная таблица Google: шифрование содержимого ячейки с скриптом Google Apps

StackOverflow https://stackoverflow.com//questions/20053819

Вопрос

У меня есть электронная таблица Google и хотела бы зашифровать содержимое нескольких ячеек (мне все равно, какое метод шифрования используется до тех пор, пока существует эквивалентный метод расшифровки для iOS).

К сожалению, в скрипте Google Apps нет встроенных функций шифрования.

По этой причине я хотел бы использовать библиотеку JavaScript с открытым исходным кодом, такой как crypto-js А> и SJCL .

Как я могу использовать одну из этих библиотек с помощью скрипта Google Apps?

В документации скрипта Google Apps я не нашел никакой подсказки на том, как использовать внешние библиотеки JavaScript с помощью скрипта Google Apps.

Это было полезно?

Решение

Ну, я скажу это, потому что это метод, который я использовал с Дата JS . Вы можете сделать следующее:

  1. Загрузить исходный файл .js файл (ы).
  2. Откройте файл (ы) .js в текстовом редакторе
  3. Скопируйте / вставьте весь код в новый проект сценария
      .
    • Здесь вы можете "воссоздать" оригинальные файлы .js (копировать / вставить источник индивидуально) с тем же именами
  4. включают в себя клавишу проекта этого проекта скрипта в качестве библиотеки проекта, в котором вы хотите использовать эти функции.
  5. Даже если проекты являются открытым исходным кодом, вы захотите убедиться, что вы соблюдаете лицензии этих проектов, если вы собираетесь их использовать.

    Это в основном небольшой «взлома» вокруг не может загружать файлы .js в газовые проекты. Предполагая, что JS стандартный, этот метод будет работать с системой Google.


    Другой вариант - простой найдите легкий вес один или двум функциональный пакет Crypto или один криптоалкоритм, такой как AES-128 (TAHT, вам предоставляется разрешение на использование, конечно). Это действительно зависит от того, насколько вы хотите шифрование, если вам нужно перевернуть текст шифрования для получения простого значения и т. Д.

    Если это a для некоторого вида паролей системы, я бы порекомендовал использовать простое хэш. Например:

    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
    }
    
    .

    , в котором вы попросите пароль пользователя, и если пароль HASH сопоставил хеш, хранящийся в электронной таблице или где бы вы могли проверить. Вы можете использовать это, чтобы имитировать вход в репутацию в интерфейсе UIAPP, например: хранить usernames / hashes пароль в базе данных и подтвердить пользователь перед загрузкой приложения "Real".


    Однако, как упомянутые Serge, электронные таблицы будут содержать историю пересмотра исходного значения, прежде чем она была хэширована, а также значение после того, как она была хеширована. Если вы хотите избежать этого, используйте ScriptDB.


    <Сильные> PS - В дополнение к этой работе, я скажу, что в настоящее время невозможно «импортировать» негазовую библиотеку кодовой библиотеки в свой скрипт, если вы не скопируете их вручную. файл по файлу в свой проект скрипта. Уже может быть запрос на функцию Tracker Tracker, если нет, вы не можете создавать один, и я буду звездить это.


    Редактировать : согласно запросу, я включил Пакет шифрования AES с открытым исходным кодом "(содержит base64, который также приятно) в ответ, действовать в качестве ссылки для других, которые хотят зашифровать в газе. Убедитесь, что вы следуете за просьбу автора, который должен сохранить его оригинальные авторские права и ссылку обратно к источнику.

    Кроме AES, связанных с AE, и простое хэш (эквивалентное java's String.hashCode ()), ресурс которого можно найти Вот , есть Crypto-JS, как вы упомянули на вашем вопросе, и, если вы нашли время, чтобы полностью скопировать / вставить Весь код (предполагающий, что согласуется с условиями лицензии - я его не читал), вы можете использовать это по шагам, которые я описал в верхней половине моего ответа.

    MD5 в JavaScript также является алгоритмом, который вы могли бы использовать. Если вы используете код в MD5.JS , который расположен в верхней части страницы, у вас будет то, что вам нужно. Опять же, убедитесь, что вы следуете правилам лицензирования, если вы его используете.

    Лично я бы, наверное, просто использую шаблоны hash и моделей 64 , поскольку большинство из того, что вы бы использовали, это шифрование, вероятно, не невероятно важно. AES может занять немного дольше, чтобы вычислить - вы, вероятно, можете создать его самостоятельно, чтобы посмотреть, приведет ли это серьезные проблемы с триггерами, работающими в течение длительного периода времени, но я сомневаюсь, что это будет проблемой в любом случае.

    <Сильная> Примечание : База-64 - 2-летний, так что AES. MD5 - это тип хеша, а простая хеш-функция, которую я предоставил, также (конечно) хеш. Хеш-функции односторонние. Поэтому, если вам нужна двусторонняя функциональность (шифрование / дешифрация), затем используйте Base-64 или AES. База-64 по сути является ребенком версией AES. А простая хэш-функция - это детская версия MD5. Держите это в виду :)

    редактируйте еще раз : я не знаком с развитием iOS или ее внутренними, но это кажется мне, что iOS может по крайней мере сделать некоторые криптографические операции < / a>. Вы можете захотеть прочитать больше в те методы, потому что я не уверен, что вы надеваете газ и IOS вместе; Я не могу дать вам больше помощи в этой области, к сожалению.

Другие советы

Функции выше не работают для меня.Вот что вы можете скопировать и вставить в редактор Script Script Shoots (P>

function enc(str) {
    var encoded = "";
    for (i=0; i<str.length;i++) {
        var a = str.charCodeAt(i);
        var b = a ^ 123;    // bitwise XOR with any number, e.g. 123
        encoded = encoded+String.fromCharCode(b);
    }
    return encoded;
}
.

Это то, что вы получаете, когда используете его= ENG в вашей электронной таблице

 Введите описание изображения здесь

На основании этого пост Здесь P >.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top