相关疑难解决方法(0)

'b'字符在字符串文字前面做了什么?

显然,以下是有效的语法

my_string = b'The string'
Run Code Online (Sandbox Code Playgroud)

我想知道:

  1. 这是什么b字在前面的字符串是什么意思?
  2. 使用它有什么影响?
  3. 使用它的适当情况是什么?

我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它表示b用于表示字符串是二进制的,而不是Unicode,这是代码与PHP版本兼容所需的代码<6 ,当迁移到PHP 6.我不认为这适用于Python.

我确实在Python网站上找到了关于使用相同语法的字符将字符串指定为Unicode的文档u.不幸的是,它没有提到该文档中任何地方的b字符.

而且,只是出于好奇,有没有比多符号bu是做其他事情?

python string unicode binary

724
推荐指数
10
解决办法
49万
查看次数

如何使用openssl生成的文件在Python-RSA中加载公共RSA密钥?

我使用以下命令生成了私钥和公钥:

openssl genrsa -out private_key.pem 512
openssl rsa -in private_key.pem -pubout -out public_key.pem
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用Python-RSA使用python脚本加载它们:

import os
import rsa

with open('private_key.pem') as privatefile:
    keydata = privatefile.read()
privkey = rsa.PrivateKey.load_pkcs1(keydata,'PEM')

with open('public_key.pem') as publicfile:
    pkeydata = publicfile.read()

pubkey = rsa.PublicKey.load_pkcs1(pkeydata)

random_text = os.urandom(8)

#Generate signature
signature = rsa.sign(random_text, privkey, 'MD5')
print signature

#Verify token
try:
    rsa.verify(random_text, signature, pubkey)
except:
    print "Verification failed"
Run Code Online (Sandbox Code Playgroud)

我的python脚本在尝试加载公钥时失败:

ValueError: No PEM start marker "-----BEGIN RSA PUBLIC KEY-----" found
Run Code Online (Sandbox Code Playgroud)

python openssl rsa pem

11
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×2

binary ×1

openssl ×1

pem ×1

rsa ×1

string ×1

unicode ×1