Sberbank签名验证的Python实现(使用异步加密)。
sberbank-async-cryptograph的Python项目详细描述
基于异步加密的Sberbank签名验证
密钥生成、消息签名和签名验证的代码是通用的,
它不仅与Sberbank兼容。你可以把它用于你自己的目的。
但是有一个sberbank_tools
模块,它包含sberbank的特定函数。在
回购对拉式请求开放。作者将很高兴听到你的一些好的反馈。在
Python版本
编写代码时使用的Python版本是3.8。其他版本还没有经过测试,但它们可能会起作用。在
安装
pip install -i sberbank_callback_async_cryptography
烧瓶示例
^{pr2}$FastAPI示例
importosfromdotenvimportload_dotenvfromfastapiimportRequestfromsb_async_cryptography.sberbank_toolsimportverify_signature,params_get_checksumfromsb_async_cryptography.signatureimportpublic_key_import_from_x509_certificate_filefromstarlette.responsesimportJSONResponseload_dotenv()SBERBANK_PUBLIC_KEY_FILE=os.getenv('SBERBANK_PUBLIC_KEY_FILE')pub_key=public_key_import_from_x509_certificate_file(SBERBANK_PUBLIC_KEY_FILE)asyncdefnotification(request:Request):"""Status change notification from Sberbank"""params=dict(request.query_params)signature=params_get_checksum(params)ifnotverify_signature(pub_key,signature,params):returnJSONResponse(status_code=400,content={"errors":"Signature verification failed."})# some other code here
- 项目
标签: