Я создаю и продаю электронные таблицы, используя скрипт приложения Google.
Каждая проданная мной программа делает ее работоспособной только по этому адресу.
var sheetvalue = "1K113gwapnZwvLwe9Ad9d8Uk68wNVxLWlboku4BzljS5k";
var actualSheetName = SpreadsheetApp.getActiveSpreadsheet().getId();
if(actualSheetName!=sheetvalue){
return;
}
И я пытаюсь сделать ее доступной только для определенный промежуток времени.
var yyyy= 2111;
var mm = 10;
var dd = 21;
var now = new Date()
var end = new Date(yyyy , mm-1 , dd+1 )
if(end.getTime() - now.getTime() < 0){
return;
}
Они оба работают хорошо.
Вы должны знать, что я запутываю код при его распространении.
Трудно изменить обфусцированные коды при продлении периода, используемого позже, используют.
Так что я просто хочу исключить код, который проверяет период.
(Это тоже запутывает.)
function check_date(){
var yyyy= 2111;
var mm = 10;
var dd = 21;
var now = new Date()
var end = new Date(yyyy , mm-1 , dd+1 )
if(end.getTime() - now.getTime() < 0){
return "NO";
}
}
function body(){
var check =check_date();
if(check =="NO"){
return;
}
//...do programm stuff
}
Но когда пользователь отлаживал скрипт. Пользователь может видеть, что значение YES, NO является значением ключа.
Затем пользователь может удалить код check_date () и воссоздать его.
Так что я собираюсь поставить секрет код
function password(){
var password = "20220105/K113gwapnZwvLwe9Ad"//yyyy mm dd
return password;
} // It doesn't obfuscate.
function body(){
var getpassword_and_date = password();
var rawdata = getpassword_and_date.split("/");
var getdate = rawdata[0];
var getpassword = rawdata[1];
var id = SpreadsheetApp.getActiveSpreadsheet().getId();
//like a3igia9we0fjawiegdkf
// do Decryption
.
var makepassword = id+getdate+"secret-key";
makepassword= makepassword.md5();
//it not real code but do like this
if(makepassword!=getpassword){
return;
}
var now = new Date()
var end = new Date(yyyy , mm , dd )
if(end.getTime() - now.getTime() < 0){
return;
}// and date check not real do parse in get date
Это хорошо.
Поскольку его можно использовать только путем смены пароля.
Но у меня есть вопрос.
Может ли пользователь знать секретный ключ под кодом, скрытым приложением Google отладка сценария?
var makepassword = id+getdate+"secret-key";
Если пользователь может это выяснить, есть ли способ сделать это невозможным?