[{"data":1,"prerenderedAt":388},["ShallowReactive",2],{"navigation_docs_ru":3,"-ru-concepts-encryption":110,"-ru-concepts-encryption-surround":383},[4,20,55,70,90,100],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Начало работы",false,"\u002Fru\u002Fgetting-started","ru\u002F1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Введение","\u002Fru\u002Fgetting-started\u002Fintroduction","ru\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Быстрый старт","\u002Fru\u002Fgetting-started\u002Fquickstart","ru\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":21,"icon":6,"path":22,"stem":23,"children":24,"page":6},"Концепции","\u002Fru\u002Fconcepts","ru\u002F2.concepts",[25,30,35,40,45,50],{"title":26,"path":27,"stem":28,"icon":29},"Проекты и версии","\u002Fru\u002Fconcepts\u002Fprojects-and-versions","ru\u002F2.concepts\u002F1.projects-and-versions","i-lucide-boxes",{"title":31,"path":32,"stem":33,"icon":34},"Файлы конфигурации","\u002Fru\u002Fconcepts\u002Ffiles","ru\u002F2.concepts\u002F2.files","i-lucide-file-json",{"title":36,"path":37,"stem":38,"icon":39},"Публикация","\u002Fru\u002Fconcepts\u002Fpublishing","ru\u002F2.concepts\u002F3.publishing","i-lucide-send",{"title":41,"path":42,"stem":43,"icon":44},"Доступ и роли","\u002Fru\u002Fconcepts\u002Faccess","ru\u002F2.concepts\u002F4.access","i-lucide-users",{"title":46,"path":47,"stem":48,"icon":49},"Шифрование","\u002Fru\u002Fconcepts\u002Fencryption","ru\u002F2.concepts\u002F5.encryption","i-lucide-lock",{"title":51,"path":52,"stem":53,"icon":54},"Git-интеграция","\u002Fru\u002Fconcepts\u002Fgit","ru\u002F2.concepts\u002F6.git","i-lucide-git-branch",{"title":56,"icon":6,"path":57,"stem":58,"children":59,"page":6},"SDK","\u002Fru\u002Fsdk","ru\u002F3.sdk",[60,65],{"title":61,"path":62,"stem":63,"icon":64},"Node.js","\u002Fru\u002Fsdk\u002Fnodejs","ru\u002F3.sdk\u002F1.nodejs","i-simple-icons-nodedotjs",{"title":66,"path":67,"stem":68,"icon":69},"Unity","\u002Fru\u002Fsdk\u002Funity","ru\u002F3.sdk\u002F2.unity","i-simple-icons-unity",{"title":71,"icon":6,"path":72,"stem":73,"children":74,"page":6},"API и MCP","\u002Fru\u002Fapi","ru\u002F4.api",[75,80,85],{"title":76,"path":77,"stem":78,"icon":79},"API-токены","\u002Fru\u002Fapi\u002Fauthentication","ru\u002F4.api\u002F1.authentication","i-lucide-key-round",{"title":81,"path":82,"stem":83,"icon":84},"REST API","\u002Fru\u002Fapi\u002Frest-api","ru\u002F4.api\u002F2.rest-api","i-lucide-plug",{"title":86,"path":87,"stem":88,"icon":89},"MCP для ИИ-агентов","\u002Fru\u002Fapi\u002Fmcp","ru\u002F4.api\u002F3.mcp","i-lucide-bot",{"title":91,"icon":6,"path":92,"stem":93,"children":94,"page":6},"Поддержка","\u002Fru\u002Fsupport","ru\u002F5.support",[95],{"title":96,"path":97,"stem":98,"icon":99},"Обратная связь","\u002Fru\u002Fsupport\u002Ffeedback","ru\u002F5.support\u002F1.feedback","i-lucide-message-circle",{"title":101,"icon":6,"path":102,"stem":103,"children":104,"page":6},"Правовая информация","\u002Fru\u002Flegal","ru\u002F6.legal",[105],{"title":106,"path":107,"stem":108,"icon":109},"Политика конфиденциальности","\u002Fru\u002Flegal\u002Fprivacy","ru\u002F6.legal\u002F1.privacy","i-lucide-shield",{"id":111,"title":46,"body":112,"description":374,"extension":375,"links":376,"meta":377,"navigation":378,"path":47,"seo":379,"stem":48,"__hash__":382},"docs_ru\u002Fru\u002F2.concepts\u002F5.encryption.md",{"type":113,"value":114,"toc":368},"minimark",[115,124,129,154,158,165,302,306,347,351,355,364],[116,117,118,119,123],"p",{},"Файлы на CDN доступны любому, кто знает ссылку. Если файл не должен читать каждый, кто нашёл URL, пометьте его как ",[120,121,122],"strong",{},"зашифрованный",".",[125,126,128],"h2",{"id":127},"как-это-работает","Как это работает",[130,131,132,139,151],"ol",{},[133,134,135,136,123],"li",{},"Включите флаг шифрования для файла в ",[120,137,138],{},"Project settings → Encryption",[133,140,141,142,145,146,150],{},"При публикации содержимое шифруется ",[120,143,144],{},"ключом проекта"," (после удаления ключей ",[147,148,149],"code",{},"$note",").",[133,152,153],{},"Ваш сервис расшифровывает его тем же ключом.",[125,155,157],{"id":156},"где-взять-ключ","Где взять ключ",[116,159,160,161,164],{},"Админы проекта открывают ",[120,162,163],{},"Project settings → Encryption → Show key",". Относитесь к ключу как к паролю: храните в переменной окружения или менеджере секретов, не в репозитории.",[166,167,172],"pre",{"className":168,"code":169,"language":170,"meta":171,"style":171},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const veresk = new Veresk({\n  cdnUrls: ['\u003CCDN URL>'],\n  version: 'default',\n  consumer: 'backend',\n  encryptSecret: process.env.VERESK_SECRET,\n});\n","ts","",[147,173,174,204,232,250,267,290],{"__ignoreMap":171},[175,176,179,183,187,191,194,198,201],"span",{"class":177,"line":178},"line",1,[175,180,182],{"class":181},"spNyl","const",[175,184,186],{"class":185},"sTEyZ"," veresk ",[175,188,190],{"class":189},"sMK4o","=",[175,192,193],{"class":189}," new",[175,195,197],{"class":196},"s2Zo4"," Veresk",[175,199,200],{"class":185},"(",[175,202,203],{"class":189},"{\n",[175,205,207,211,214,217,220,224,226,229],{"class":177,"line":206},2,[175,208,210],{"class":209},"swJcz","  cdnUrls",[175,212,213],{"class":189},":",[175,215,216],{"class":185}," [",[175,218,219],{"class":189},"'",[175,221,223],{"class":222},"sfazB","\u003CCDN URL>",[175,225,219],{"class":189},[175,227,228],{"class":185},"]",[175,230,231],{"class":189},",\n",[175,233,235,238,240,243,246,248],{"class":177,"line":234},3,[175,236,237],{"class":209},"  version",[175,239,213],{"class":189},[175,241,242],{"class":189}," '",[175,244,245],{"class":222},"default",[175,247,219],{"class":189},[175,249,231],{"class":189},[175,251,253,256,258,260,263,265],{"class":177,"line":252},4,[175,254,255],{"class":209},"  consumer",[175,257,213],{"class":189},[175,259,242],{"class":189},[175,261,262],{"class":222},"backend",[175,264,219],{"class":189},[175,266,231],{"class":189},[175,268,270,273,275,278,280,283,285,288],{"class":177,"line":269},5,[175,271,272],{"class":209},"  encryptSecret",[175,274,213],{"class":189},[175,276,277],{"class":185}," process",[175,279,123],{"class":189},[175,281,282],{"class":185},"env",[175,284,123],{"class":189},[175,286,287],{"class":185},"VERESK_SECRET",[175,289,231],{"class":189},[175,291,293,296,299],{"class":177,"line":292},6,[175,294,295],{"class":189},"}",[175,297,298],{"class":185},")",[175,300,301],{"class":189},";\n",[125,303,305],{"id":304},"кто-может-расшифровать","Кто может расшифровать",[307,308,309,321],"table",{},[310,311,312],"thead",{},[313,314,315,318],"tr",{},[316,317,56],"th",{},[316,319,320],{},"Расшифровывает",[322,323,324,338],"tbody",{},[313,325,326,332],{},[327,328,329],"td",{},[330,331,61],"a",{"href":62},[327,333,334,335],{},"Да, с ",[147,336,337],{},"encryptSecret",[313,339,340,344],{},[327,341,342],{},[330,343,66],{"href":67},[327,345,346],{},"Нет: зашифрованные файлы приходят шифртекстом",[348,349,350],"warning",{},"Ключ, зашитый в сборку игры, можно извлечь из сборки. Используйте шифрование для серверных потребителей. Для игровых клиентов не рассчитывайте на него как на способ спрятать секреты.",[125,352,354],{"id":353},"перевыпуск-ключа","Перевыпуск ключа",[116,356,357,360,361,363],{},[120,358,359],{},"Regenerate"," создаёт новый ключ и перешифровывает им все зашифрованные файлы. Клиенты, которые всё ещё используют старый ключ, больше не смогут расшифровать, поэтому сначала обновите ",[147,362,337],{}," везде.",[365,366,367],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":171,"searchDepth":206,"depth":206,"links":369},[370,371,372,373],{"id":127,"depth":206,"text":128},{"id":156,"depth":206,"text":157},{"id":304,"depth":206,"text":305},{"id":353,"depth":206,"text":354},"Публикуйте чувствительные файлы шифртекстом и расшифровывайте их в своём сервисе.","md",null,{},{"icon":49},{"title":380,"description":381},"Шифрование файлов в Veresk","Как шифровать опубликованные файлы конфигов в Veresk, где взять ключ проекта, как расшифровывает Node.js SDK и что сделать перед перевыпуском ключа.","ZmRK3G-4e-pLNMd09LVPbgGf6Eqe72hYDVQARIORQPA",[384,386],{"title":41,"path":42,"stem":43,"description":385,"icon":44,"children":-1},"Кто что может делать в проекте.",{"title":51,"path":52,"stem":53,"description":387,"icon":54,"children":-1},"Храните файлы проекта в Git-репозитории параллельно с публикацией.",1793977344165]