Skip to content

代码保护与加密

关于资源 > 代码保护与加密

代码安全有两种方式:

  1. Lock Flash:锁定Flash,防止外部读取。
  2. 代码加密:更高级别的加密,确保每颗芯片的代码唯一。

Lock Flash

Lock Flash是在烧录代码后,锁定Flash,防止外部对Flash中内容的读取。如果有解锁(Unlock)的动作,会触发清空Flash的操作。

实现方式

  • Lock动作是在Downloader工具中执行的。
  • 该动作的使能,需要在platformio.ini里增加配置:
    ini
    lock_flash = true
  • 如果不使用VSCode中的batch图标,而是使用自定义batch命令(多个bin的情况),则是在命令后增加 --lock 参数来使能。

代码加密

代码加密是更高级别的加密。它会保证烧录到每颗芯片的内容,都是绑定自己的唯一ID的。

特点

  • 同一个原始bin,通过Downloader工具烧录到不同芯片时,最终烧录的内容是不同的。
  • 即使破解了某个芯片的bin,再烧录到其他芯片也是不能工作的。

实现方式

  • 加密动作也是在Downloader工具中执行的。
  • 该动作的使能,需要在platformio.ini里设置:
    ini
    board_logic.encrypt = true

注意:如果有远程Logic升级功能的需求,则该加密方式不能使用。


总结

  • Lock Flash代码加密 是两种独立的加密方式。
  • 可以单独使用,也可以一起使用。