2016-04-30 43 views
1

我不确定你们是否熟悉加密模块,但我试图加密一个表示字符串的变量。如何用密码模块加密变量?

例如:

string = input('String here') 

他们给出的模块页面上的例子是:

from cryptography.fernet import Fernet 
key = Fernet.generate_key() 
cipher_suite = Fernet(key) 
cipher_text = cipher_suite.encrypt(b"A really secret message. Not for prying eyes.") 
plain_text = cipher_suite.decrypt(cipher_text) 

这是所有罚款和花花公子,但是当我试图取代“真的秘密消息字符串如果它是在引号中,它只是打印变量的名字(duh)

如果它出这样的报价:cipher_text = cipher_suite.encrypt(bstring),它说变量没有定义(也咄)

但如果我只是把变量,它给了我一个错误:TypeError: data must be bytes.

任何想法?谢谢!

回答

3

根据Python的documentation

bytes and bytearray objects are sequences of integers (between 0 and 255), representing the ASCII value of single bytes

我觉得输入需要像这样

a = b"abc" 

(请注意, “B”)。

+0

你将如何格式化?你的意思是这样的吗?:string = input('b'+'String_input') –

+0

我不用这些工作,但文档(比较上面)说: _Bytes对象可以构造构造函数,字节()和文字;使用正常字符串语法的b前缀:b'xyzzy'._ – patrick

+0

我不想像这样放置一行文本进行加密:b'text_not_a_variable'。我想要做的就是加密一个像这样的变量:b'This_IS_a_variable'(参见上面尝试过的语法的问题) –