Skip to content

Commit ecc923b

Browse files
committed
更新密钥相关说明
1 parent df7aac8 commit ecc923b

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

docs/beginner/quick-start.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ Obfuz的Unity Package Manager URL安装地址:
3030
- 运行菜单`Obfuz/GenerateEncryptionVM`生成加密虚拟机代码,默认生成的代码文件为`Assets/Obfuz/GeneratedEncryptionVirtualMachine.cs`
3131
- 运行菜单`Obfuz/GenerateSecretKeyFile`生成两个密钥文件。默认输出文件为`Assets/Resources/Obfuz/defaultStaticSecretKey.bytes``Assets/Resources/Obfuz/defaultDynamicSecretKey.bytes`
3232

33+
:::warning
34+
请妥善处理defaultStaticSecretKey.bytes和defaultDynamicSecretKey.bytes文件。建议更换名字,并且对它们都作加密处理。
35+
另外defaultDynamicSecretKey.bytes请尽量不要放到包体内,而是和热更新代码一起下载。
36+
:::
37+
3338
## 添加代码
3439

3540
-`Assets`目录下创建`Bootstrap.cs`代码文件,文件内容如下:

docs/manual/encryption.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,17 @@ Obfuz通过EncryptionScope来实现这个功能。
267267

268268
菜单`Obfuz/GenerateSecretKey`会为这两个密钥生成defaultStaticSecretKey.bytes和defaultDynamicSecretKey.bytes文件。可在`SecretSettings.SecretKeyOutputPath`可以配置密钥文件的输出目录。
269269

270-
271270
如果混淆了某些AOT程序集,由于AOT程序集中的代码在很早期就可能被执行到,如此不能在执行这些程序集中的混淆或者加密代码前就为它们所属的`EncryptionService<{EncryptionScope}>`设置Encryptor,
272271
会产生运行异常。建议是尽可能早执行`EncryptionService<{EncryptionScope}>.Encrypor`的初始化代码。一个比较合理的方式是使用`[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]`
273272
在CLR(il2cpp或mono)运行时加载完所有程序集后就运行EncryptionService的初始化代码。
274273

275274
显然,不应该混淆`SetUpStaticSecret`的代码,因为此时EncryptionService还未初始化,这会陷入无限递归。而`SetUpDynamicSecret`则可以被混淆,因此它一般在满足某些条件后(比如热更新完成后)才被调用。
276275

276+
:::warning
277+
请妥善处理defaultStaticSecretKey.bytes和defaultDynamicSecretKey.bytes文件。建议更换名字,并且对它们都作加密处理。
278+
另外defaultDynamicSecretKey.bytes请尽量不要放到包体内,而是和热更新代码一起下载。
279+
:::
280+
277281
## salt
278282

279283
Encryt或Decrypt中的salt是一个随机生成的参数,取值范围为`[int.MinValue, int.MaxValue]`。它作为一个额外的参数用于增加加密和解密操作的复杂性。

0 commit comments

Comments
 (0)