首页 > 其他分享 >Expected type 'PublicFormat', got 'str' instead

Expected type 'PublicFormat', got 'str' instead

时间:2024-01-26 17:45:07浏览次数:23  
标签:str cryptography key instead geted type public PublicFormat

在用包cryptography进行非对称加密时, 生成公钥的函数异常.


from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa


# 生成RSA密钥对
def generate_rsa_key_pair():
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048, # 一般是1024位,重要场合是2048位。
backend=default_backend()
)
public_key = private_key.public_key()
return private_key, public_key


private_key, public_key = generate_rsa_key_pair()


def get_public_key():
geted_public_key = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')

return geted_public_key


"""
上面的代码块在PyCharm中下面两行
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
异常: Expected type 'PublicFormat', got 'str' instead

原因: 当时用的cryptography==1.9, cryptography版本太低, 换了一个高版本好了
"""

geted_public_key = get_public_key()
print(f'geted_public_key:\n{geted_public_key}, type:{type(geted_public_key)}')

标签:str,cryptography,key,instead,geted,type,public,PublicFormat
From: https://www.cnblogs.com/tslam/p/17989884

相关文章

  • 【JAVA基础】String、StringBuilder和StringBuffer的区别——巨详细
    先给答案String是不可变的,StringBuilder和StringBuffer是可变的。而StringBuffer是线程安全的,而StringBuilder是非线程安全的。源码先看看jdk1.8中关于String、StringBuilder和StringBuffer部分的源码,我们看某个类或者某个属性是否不可变首先要看修饰类的关键字是什么,final表示不可......
  • @PostConstruct用法详解介绍
    1.@PostConstruct介绍定义:在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。说明:被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法......
  • CF1917F Construct Tree
    Link:http://codeforces.com/problemset/problem/1917/F知识点:背包,构造简述\(T\)组数据,每组数据给定参数\(d\)与一长度为\(n\)的数列\(l\),仅需判断是否可以构造出一棵树,满足:树的所有边长与数列元素一一对应。树的直径为\(d\)。\(1\leT\le250\),\(2\len\le2000\)......
  • Programming Abstractions in C阅读笔记:p254-p257
    《ProgrammingAbstractionsinC》学习第70天,p254-p257总结,总计4页。一、技术总结1.minimaxstrategy(极小化极大算法)p255,Thisidea--findingthepositionthatleavesyouropponentwiththeworstpossiblebestmove--iscalledtheminimaxstrategybecausethegoa......
  • # yyds干货盘点 # 盘点一个Pandas中.str的一个常见小误区
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas基础的问题。问题如下:大佬们,这里面的dtype,能直接改成str格式?我一开始认为只能这么看print(df.dtypes),传统的做法我一直认为是这样子df['数学']=df['数学'].astype(str),不明白,上面这部,跟这部df['数......
  • 盘点一个Pandas中.str的一个常见小误区
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas基础的问题。问题如下:大佬们,这里面的dtype,能直接改成str格式?我一开始认为只能这么看print(df.dtypes),传统的做法我一直认为是这样子df['数学']=df['数学'].astype(str),不明白,上面这部,跟这部df['......
  • CF1732F Clear the String
    题目传送门很明显的一道区间dp我们设\(dp_{i,j}\)表示清空\(i\)到\(j\)之间所有字母所需的最小操作次数紧接着任取一个\(k\)满足\(k\in(i,j]\)来分情况讨论:\[f_{i,j}=\min^j_{k=i+1}\left\{\begin{aligned}a_i=a_k\Rightarrowf_{i+1,k-1}+f_{k,j}\\f_{i+1,k-1}+f......
  • dijkstra算法(单源最短路径)
    单源最短路径是求解给定一个起点到其他所有的点的最短距离。适用的范围:有向图、边的权值没有负数洛谷测试链接代码实现#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<time.h>#include<stdboo......
  • 收集Stream流的数据到集合或数组中
    1publicstaticvoidmain(String[]args){2List<String>list=newArrayList<>();3list.add("张三");4list.add("李四");5list.add("王武");6list.add("王武"......
  • Stream流操作示例
    1privatestaticdoubleoneMoney;2privatestaticdoubletwoMoney;3privatestaticdoublesumMoney;45publicstaticvoidmain(String[]args){6List<Employee>list1=newArrayList<>();7list1.add(new......