PRS实用程序

prs-utilit的Python项目详细描述


prs-utility 是 PRS 为 Python 提供的算法工具库,包含项目中用到的消息摘要、签名算法。

Python 版本支持

支持 >= Python 3.6

安装

pip install prs-utility

使用示例

# 根据 keystore 和 password 得到私钥importjsonimportprs_utilitykeystore={"address":"758ea2601697fbd3ba6eb6774ed70b6c4cdb0ef9","crypto":{"cipher":"aes-128-ctr","ciphertext":"92af6f6710eba271eae5ac7fec72c70d9f49215e7880a0c45d4c53e56bd7ea59","cipherparams":{"iv":"13ddf95d970e924c97e4dcd29ba96520"},"mac":"b9d81d78f067334ee922fb2863e32c14cbc46e479eeb0acc11fb31e39256004e","kdf":"pbkdf2","kdfparams":{"c":262144,"dklen":32,"prf":"hmac-sha256","salt":"79f90bb603491573e40a79fe356b88d0c7869852e43c2bbaabed44578a82bbfa"}},"id":"93028e51-a2a4-4514-bc1a-94b089445f35","version":3}password='123123'private_key=prs_utility.recover_private_key(json.dumps(keystore),password)print('private_key:',private_key)# 计算 hash 值## 计算 bytes、int、bool 的 hash 值print(prs_utility.keccak256(primitive=b'hello'))print(prs_utility.keccak256(primitive=42))print(prs_utility.keccak256(primitive=True))函数的第一个可选参数是primitive所以可以不写该参数print(prs_utility.keccak256(42))## 计算 text 或 字符串 的 hash 值print(prs_utility.keccak256(text='hello'))withopen(__file__)asfp:content=fp.read()file_hash=prs_utility.keccak256(text=content)print('file hash:',file_hash)## 计算 hex str 的 hash 值print(prs_utility.keccak256(hexstr='0xabcd'))# 根据 PRS 协议组合 block data, 并且使用 privateKey 进行签名data={'file_hash':file_hash,}key_pair=prs_utility.create_key_pair()private_key=key_pair['privateKey']sig=prs_utility.sign_block_data(data,private_key)print('signature:',sig)# 生成一对新密钥key_pair=prs_utility.create_key_pair()print('key_pair:',key_pair)

API

prs-utility 提供了常用的加解密函数和一些用于格式转化的工具函数

$ pydoc prs_utility

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过编程将Android置于待机状态?   java mavenjarsignerplugin在Jenkins构建期间失败,但不是在命令行上   java创建具有公共ipv4地址的HttpServer   将数据从jsp传递到servlet的java返回null   Web应用程序中的java JDBC数据库连接   java无法显示unicode字符   java webview应用程序未上载图片或视频   Android客户端Java服务器,如果订单处理方式不正确,客户端将无法连接   java在不复制备份表的情况下创建备份表   集合如何在Java中实现列表折叠   java如何配置在JBoss7中使用EntityListeners?   java JVM ClassUnloadingWithConcurrentMark标志   java如何在Maven中排除特定的单元测试   java线程在SynchronousQueue中执行put操作后挂起   java中的hibernate Comparator和可比较的负面场景   数组中的java连接元素   拖放Java,让面板落在鼠标事件上   java是一种事务管理应用程序,无需在方法上使用@transactional   java有没有办法从安卓的软键板上删除这一行?