Хорошо, я скажу это, потому что это метод, который я использовал с Date JS. Вы можете сделать следующее:
- Загрузить исходный .js-файл (ы).
- Откройте .js файл (ы) в текстовом редакторе
- Копировать/вставить весь код в новый Project Script
- здесь вы можете «воссоздать» оригинальные .js файлы (копия/источник пасты индивидуально) с теми же именами
- Включите проект ключа этого проект сценария как библиотеки проекта, в котором вы хотите использовать эти функции.
Даже если проекты с открытым исходным кодом, вы захотите убедиться, что выполняете лицензии этих проектов, если собираетесь их использовать.
Это, по сути, небольшой «взлом» вокруг того, что вы не можете загружать файлы .js в проекты GAS. Предполагая, что JS является стандартным, этот метод будет работать с системой Google.
Другой вариант заключается в простой найти легкий вес одного или двух функций криптографических пакет, или единый алгоритм шифрования, как AES-128 (TAHT вам дается разрешение на использование, конечно). Это действительно зависит от того, сколько шифрования вы хотите, если вам нужно изменить текст шифрования, чтобы получить простые значения и т. Д.
Если это какая-то система паролей, я бы рекомендовал использовать простой хэш. Например:
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
}
, в котором вы бы запрашивать пароль пользователя, и если хэш пароля соответствует хэш хранящуюся в таблице или где, то вы бы проверить. Вы можете использовать это для имитации входа в GUI UiApp, например: хранить имена пользователей/паролей в базе данных и проверять пользователя перед загрузкой «реального» приложения.
Однако, как уже упоминалось Serge, электронные таблицы будут содержать историю изменения первоначальной стоимости, прежде чем он был хэшируется, а также значение после того, как он был хэшируется. Если вы хотите этого избежать, используйте ScriptDB.
PS - в дополнение к этой работе многоборье, я скажу, что это не возможно в настоящее время на «импорт» не-GAS код библиотеки в проект сценария, если вы вручную скопировать исходный файл -by-file в ваш проект сценария. Возможно, уже есть запрос функции на Tracker Issue, если вы не можете создать его, и я буду его запускать.
EDIT: По желанию, я включил an open source AES шифрования «пакет» (содержит base64, а также, что приятно) в ответ, чтобы действовать в качестве эталона для других людей, которые хотят, чтобы зашифровать в ГАЗ. Убедитесь, что вы следуете просьбе автора, которая заключается в сохранении его первоначального авторского права и ссылки на источник.
За исключением AES I и простого хеша (эквивалент String.hashCode() Java), ресурс которого можно найти here, есть крипто-JS, как вы упомянули в своем вопросе, и, если вы нашли время полностью копировать/вставлять весь код (при условии, что это согласуется с условиями лицензии - я его не читал), вы можете использовать это по шагам, которые я описал в первой половине моего ответа.
MD5 in Javascript также является алгоритмом, который вы можете использовать. Если вы используете код в md5.js, который находится в верхней части страницы, у вас будет все, что вам нужно. Опять же, убедитесь, что вы используете правила лицензирования, если используете его.
Лично я бы, вероятно, просто использовать хэш и базы-64 модели, так как большинство из того, что вы будете использовать это шифрование, вероятно, не невероятно важно. AES может потребоваться немного больше времени, чтобы вычислить - вы, вероятно, можете сравнить его самостоятельно, чтобы увидеть, вызовет ли он серьезные проблемы с запуском триггеров в течение длительного периода времени, но я сомневаюсь, что это будет проблемой в любом случае.
Примечание: base-64 является 2-way, также AES. MD5 - это тип хэша, и простая хэш-функция, которую я предоставил, также (конечно) хеш. Хэш-функции однонаправлены. Поэтому, если вам нужны двухсторонние функции (шифрование/дешифрование), используйте base-64 или AES. Base-64 - это, по сути, малая версия AES. И простая хэш-функция - это малая версия MD5. Имейте это в виду :)
Edit снова: Я не знаком с развитием IOS или его внутренностей, но кажется мне, что iOS can at least do some cryptographic operations. Возможно, вы захотите больше прочитать эти методы, потому что я не совсем уверен, как вы объединяете GAS и iOS; К сожалению, я не могу вам помочь.
Использование шифрования в электронной таблице Google, возможно, не очень хорошая идея из-за сборки в истории ревизий, которая позволит любому пользователю увидеть док-станцию до шифрования ... как вы могли бы подумать обойти эту проблему? –
@Serge insas Я буду хранить зашифрованное и оригинальное значение в той же таблице. Сценарий будет загружать только зашифрованное значение на сервер с использованием протокола REST. Таблицу, включающую исходное значение, никто не увидит. – AlexR
нормально, хорошо знать ;-) Как вы напишете свое приложение-приложение? ГАЗ тоже? мой вопрос: вы не могли бы зашифровать его в приложении, а не в SS? (только вопрос) –