Appearance
HAP Python 加固
| 方式 | 适用场景 |
|---|---|
| 单文件一键加固 | 对 Python 单文件进行全程序保护 |
| Nuitka SDK | 在 Windows Python 应用中接入 HAP 网络授权,并用 Nuitka 构建原生应用 |
单文件一键加固
支持 Python 单文件一键加固。
- 支持 CPython 3.9~3.14
- 支持移除 docstring、压缩字符串
- 支持全程序保护
请联系客服了解详情。
Nuitka SDK
Python Nuitka SDK 提供与 C/C++ SDK 同名的 Python 接口,涵盖初始化、许可证登录、心跳、会话完整性检查和云函数。HAP 可识别调用 SDK 的业务函数,并推荐保护。
调用约定
使用 import hap_sdk as hap 导入 SDK。每个 HAP API 调用单独占一行,并使用位置参数。
安全提示
登录成功后,可在实际业务函数内直接调用 hap.HAP_LoginIntegrity(),并根据返回值决定是否继续执行受保护的操作。将检查分散到业务功能中,可让授权验证与业务逻辑结合,增强安全性。
数据类型
ClientVersion 是由四个整数组成的元组,依次表示主版本号、次版本号、修订号和构建号,例如 (1, 0, 0, 0)。
| 枚举 | 成员 | 含义 |
|---|---|---|
UserInfoType | License、Owner、Note | 许可证、管理员、备注 |
UserInfoType | ExpireTime、Credits | 剩余有效时间(秒)、剩余点数 |
ClientVersionInfoType | Note_UTF8、Note_GBK、Note_UTF16_LE | 按指定编码获取客户端版本备注 |
HAP_Initialize
python
def HAP_Initialize(host: str, port: int, version: ClientVersion) -> bool: ...- 功能:初始化 SDK,配置授权服务器和当前客户端版本。
- 参数:
host为服务器 IP 地址或主机名,port为端口,version为四段版本号。 - 返回值:成功返回
True,失败返回False。失败后可调用HAP_GetLastError()。
HAP_Cleanup
python
def HAP_Cleanup() -> None: ...- 功能:释放 SDK 资源。
- 参数:无。
- 返回值:
None。 - 注解:程序退出前先停止后台心跳,再清理 SDK。
HAP_Login
python
def HAP_Login(key: str) -> bool: ...- 功能:使用许可证登录。
- 参数:
key为许可证字符串。 - 返回值:成功返回
True,失败返回False。 - 注解:先完成 SDK 初始化。登录失败后调用
HAP_GetLastError()获取错误码。
HAP_GetUserInfo
python
def HAP_GetUserInfo(type: UserInfoType) -> str | int | None: ...- 功能:获取当前登录会话的用户信息。
- 参数:
type为UserInfoType枚举值。 - 返回值:许可证、管理员和备注返回
str。剩余有效时间和点数返回int。失败返回None。
HAP_GetClientVersionInfo
python
def HAP_GetClientVersionInfo(type: ClientVersionInfoType) -> bytes | None: ...- 功能:从服务端获取初始化时指定版本的备注。
- 参数:
type为ClientVersionInfoType枚举值,用于选择编码。 - 返回值:成功返回
bytes,可按所选编码解码。失败返回None。 - 注解:初始化后即可调用。失败时可通过
HAP_GetLastError()读取 SDK 错误码。
HAP_GetLastError
python
def HAP_GetLastError() -> int: ...- 功能:读取 SDK 记录的最近一个 HAP 错误码。
- 参数:无。
- 返回值:整数错误码,含义见错误码表。
- 注解:在原调用失败后立即读取,以免后续 SDK 调用覆盖错误状态。
HAP_GetLastNetworkError
python
def HAP_GetLastNetworkError() -> int: ...- 功能 读取最近一次网络失败对应的 Windows WinSock 错误码,补充
HAP_GetLastError()提供的 HAP 错误信息。 - 参数 无。
- 返回值 返回整数型 WinSock 错误码。
0表示系统错误码不可用。 - 注解 调用失败后立即保存两个错误码,后续 SDK 调用可能清除或覆盖错误状态。
HAP_Heartbeat
python
def HAP_Heartbeat() -> bool: ...- 功能:登录成功后,向服务端发送心跳以维持授权会话。
- 参数:无。
- 返回值:成功返回
True,失败返回False。 - 注解:失败后可调用
HAP_GetLastError()获取错误码。
HAP_LoginIntegrity
python
def HAP_LoginIntegrity() -> bool: ...- 功能:检查当前登录会话的完整性和合法性。
- 参数:无。
- 返回值:检查通过返回
True,失败返回False。
安全提示
登录成功后,可在对性能要求不高的实际业务函数中直接调用 HAP_LoginIntegrity()。检查通过后再执行受保护的操作。将检查分散到不同业务功能中,可让授权验证与业务逻辑结合,增强安全性。
HAP_CloudFunction
python
def HAP_CloudFunction(command: str) -> bytes: ...- 功能:向服务端插件模块发送命令并获取结果。
- 参数:
command为传给插件的命令字符串。 - 返回值:返回结果字节串。服务端未配置插件、插件未返回内容或调用失败时,可能得到
b""。 - 注解:收到空字节串时,可立即读取
HAP_GetLastError()辅助排查。
HAP_TerminateProcess
python
def HAP_TerminateProcess(exit_code: int) -> None: ...- 功能:立即终止当前进程。
- 参数:
exit_code为进程退出码。 - 返回值:调用后进程终止。
警告
此函数会结束整个进程。请在会话检查失败等需要终止程序的场景中调用。
