Электронная таблица Google: шифрование содержимого ячейки с скриптом Google Apps
-
27-12-2019 - |
Вопрос
У меня есть электронная таблица Google и хотела бы зашифровать содержимое нескольких ячеек (мне все равно, какое метод шифрования используется до тех пор, пока существует эквивалентный метод расшифровки для iOS).
К сожалению, в скрипте Google Apps нет встроенных функций шифрования.
По этой причине я хотел бы использовать библиотеку JavaScript с открытым исходным кодом, такой как crypto-js А> и SJCL .
Как я могу использовать одну из этих библиотек с помощью скрипта Google Apps?
В документации скрипта Google Apps я не нашел никакой подсказки на том, как использовать внешние библиотеки JavaScript с помощью скрипта Google Apps.
Решение
Ну, я скажу это, потому что это метод, который я использовал с Дата JS . Вы можете сделать следующее:
- Загрузить исходный файл .js файл (ы).
- Откройте файл (ы) .js в текстовом редакторе
- Скопируйте / вставьте весь код в новый проект сценария
- .
- Здесь вы можете "воссоздать" оригинальные файлы .js (копировать / вставить источник индивидуально) с тем же именами
- включают в себя клавишу проекта этого проекта скрипта в качестве библиотеки проекта, в котором вы хотите использовать эти функции.
Даже если проекты являются открытым исходным кодом, вы захотите убедиться, что вы соблюдаете лицензии этих проектов, если вы собираетесь их использовать.
Это в основном небольшой «взлома» вокруг не может загружать файлы .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, связанных с AE, и простое хэш (эквивалентное java's String.hashCode ()), ресурс которого можно найти
MD5 в JavaScript также является алгоритмом, который вы могли бы использовать. Если вы используете код в
Лично я бы, наверное, просто использую шаблоны 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 >.