- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
from pubnub import Pubnub ;
from tkinter import *
Window = Tk()
pubnub = Pubnub(publish_key="pub-c-9997b5b1-da6f-4935-88f7-4d0645bcdf2b",
subscribe_key="sub-c-2bc2a578-776c-11e6-9195-02ee2ddab7fe")
def Callback(message, channel):
Logic.UpdateMessageList(message)
Logic.UpdateMessageDisplay()
Display.DisplayMessage()
def Error(message):
Window.title("PubNub - Error")
def Connect(message):
Window.title("PubNub - Connected")
def Reconnect(message):
Window.title("PubNub - Reconnected")
def Disconnect(message):
Window.title("PubNub - Disconnected")
def SendMessage(event):
message = (Logic.Username, Display.MessageEntry.get())
pubnub.publish("my_channel", message = message)
pubnub.subscribe(channels='my_channel',
callback = Callback,
error = Error,
connect = Connect,
reconnect = Reconnect,
disconnect = Disconnect)
class Logic:
def __init__(self):
self.Username = ""
self.MessageList = ([],[])
self.MessageNumber = 0
self.MaxMessages = 6
def UpdateMessageList(self, message):
self.MessageList[0].append(message[0])
self.MessageList[1].append(message[1])
self.MessageNumber += 1
def UpdateMessageDisplay(self):
self.DisplayList = []
if self.MessageNumber >= (self.MaxMessages + 1):
self.MessageList[0].pop(0)
self.MessageList[1].pop(0)
for Num in range(len(self.MessageList[0])):
for ListNum in range(2):
self.DisplayList.append((self.MessageList[ListNum][Num]))
self.DisplayList.append("\n")
Logic = Logic()
class MainDisplay:
def __init__(self):
Window.geometry("400x400")
Window.resizable(0,0)
self.MessageVar = StringVar()
Window.title("PubNub")
def ScreenOne(self):
Window.bind("<Return>", self.AdvScreenTwo)
self.EasyFrame = Frame(Window)
self.EasyFrame.config(bg = "Grey", height = 400, width = 400)
self.EasyFrame.grid()
self.EasyFrame.place(relx = 0.5, y = 200, anchor = CENTER)
self.UsernameEntry = Entry(self.EasyFrame)
self.UsernameEntry.config(width = 15, bg = "White", fg = "Black")
self.UsernameEntry.grid()
self.UsernameEntry.place(relx = 0.5, y = 200, anchor = CENTER)
UsernameLabel = Label(self.EasyFrame, text = "Enter Username")
UsernameLabel.config(bg = "Grey", bd = 0, font = ("times",13,"bold"), fg = "White")
UsernameLabel.grid()
UsernameLabel.place(relx = 0.5, y = 90, anchor = CENTER)
def AdvScreenTwo(self, event):
Logic.Username = (self.UsernameEntry.get())
Window.unbind("<Return>")
self.EasyFrame.grid_forget()
self.EasyFrame.destroy()
Window.bind("<Return>", SendMessage)
self.ScreenTwo()
def ScreenTwo(self):
self.MessagesParent = Frame(Window)
self.MessagesParent.config(bg = "Grey", height = 400, width = 400)
self.MessagesParent.grid()
self.MessagesParent.place(relx = 0.5, y = 200, anchor = CENTER)
self.MessageEntry = Entry(self.MessagesParent)
self.MessageEntry.config(width = 40, bg = "Grey", fg = "Black")
self.MessageEntry.grid()
self.MessageEntry.place(relx = 0.5, y = 350, anchor = CENTER)
def DisplayMessage(self):
Y = 10
for Item in (Logic.MessageList[0]):
self.TextLabel = Label(Window, text = Item, height = 3, width = 6, font = ("times", 8, "bold"), anchor = "w")
self.TextLabel.grid()
self.TextLabel.place(relx = 0.05, y = Y)
Y += 50
Y = 10
for Item in (Logic.MessageList[1]):
self.TextLabel = Label(Window, text = Item, height = 3, width = 40, font = ("times", 8, "bold"),wraplength = 270, anchor = "w")
self.TextLabel.grid()
self.TextLabel.place(relx = 0.2, y = Y)
Y += 50
Display = MainDisplay()
def Main():
Display.ScreenOne()
if __name__ == "__main__":
Main()
Window.mainloop()
这是我的代码,当我通过控制台或 IDLE 运行它时,它确实工作,这很好,但我想编译它。我设法使用 cx_freeze 用我通常的方法编译它,但我收到一条错误消息:
OsError: Cannot load native module 'Cryptodome.Cipher,_raw_ecb'
可以提供可能需要的任何其他信息。
最佳答案
获得了相当多的浏览量,所以我想我会发布答案,我给 pubnub 支持发了邮件
Hi Joshua,
Please use this branch from our SDK https://github.com/pubnub/python/tree/reduce_crypto ; it has cryto unbundled from the dependencies.
这修复了它:)(将 Pythonx.x 中的 pubnub 文件替换为 git 上的 pubnub.py 文件)
关于python - 编译 - OsError : Cannot load native module 'Cryptodome.Cipher._raw_ecb' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467859/
使用 Cipher.ENCRYPT_MODE 有什么区别/好处/缺点吗加密 key 以使用 Cipher.WRAP_MODE 进行传输? 我的理解是,我仍然需要第二个,可能更小的 key 来包装/加密
我创建了一个传递两个缓冲区的密码。 buf1 是它们的键,一个 32 字节的缓冲区,而 buf2,即 IV,也是一个 32 字节的缓冲区,我将其切片为仅使用 16 字节。文档说 cipher.upda
我刚刚将我的 Mac 升级到 Snow Leopard,并启动并运行了我的 Rails 环境。除了 OSX 之外,我之前安装的唯一区别是我现在运行的是 ruby 1.8.7 (2008-08-11 p
正在尝试在客户端和服务器之间建立 SSL 连接。但每当我尝试从客户端连接时,我的服务器上都会收到 javax.net.ssl.SSLHandshakeException: no cipher suit
在多线程 Java 应用程序中,我们使用 AES-256 对磁盘文件进行加密和解密。请注意,多个线程可以同时调用不同文件的加密和解密方法。 加密: Cipher encrypter = Cipher.
我试图将安全提供程序从 SunJCE 切换到 Bouncy CaSTLe (BC),并在 Cipher 对象中偶然发现了这种特殊行为。据我所知,SunJCE 的 cipher.update(bytes
我应该如何使用从服务器端传输的公钥在客户端加密 session key ? 我应该使用 Cipher.WRAP_MODE 还是 Cipher.ENCRYPT_MODE? Cipher cipher =
SecretKey key = keyFactory.generateSecret(keySpec); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS
我正在尝试使用 AES 解密字符串,并且使用 jce.jar 来执行此操作。 我有以下方法来解密。 public String decrypt(String strToDecrypt) {
我有一个带有解密功能的 Android 应用程序,如下所示: private static byte[] decrypt(byte[] keybytes, byte[] data) { Sec
我正在实现 DES - CBC。我对 cipher.init 、 cipher.update 和 cipher.dofinal 的作用感到困惑。我只是使用 init 来设置 key 并使用 dofin
使用 Digicert's SSL mechanism explanation我已经了解数据在浏览器和服务器之间是如何加密的,以下是我的理解。 浏览器将向服务器发送请求以获取一些资源。服务器检查请求的
我正在使用 javax.crypto 在 java 中进行 AES CBC 解密。我正在使用以下 Cipher 类方法: public final void init (int opmode, Key
我能否在多个方法中使用相同的 Cipher 对象,因为 getInstance 和 init 的方法参数不会改变? 例如,假设应用程序的多个部分使用实用程序类中的 decrypt 方法。所有传递的加密
很简单,javax.crypto.Cipher 的一个实例(例如 Cipher.getInstance("RSA"))可以从多个线程中使用,还是我需要将它们中的多个粘贴在 ThreadLocal 中(
Rails4默认使用加密的cookie session 存储。当应用程序尝试加密cookie时,会引发以下错误:OpenSSL::Cipher::CipherError: Illegal key si
我正在使用this code . 当所有代码都在 main 方法中的一个 try catch 中时,它似乎可以工作,但当它被分成另一个类并通过 Security 对象调用解密时,它就不起作用了。 我猜
我目前正在使用 Cipher 创建一个使用始终相同的 key 的解决方案。我知道这不是最安全的解决方案,但这是我被要求做的。我应该使用 AES256 和 EBC,但我无法正确加密。问题是我有未知的字符
我正在尝试读取一个大小为1KB的文件,然后使用CBC模式下的AES算法对其进行加密和解密。当我尝试初始化密码时,它抛出一个错误。请找到下面的代码。我在密码类中找不到接受“加密模式”、“ key ”和类
你好,我构建了这两种方法,加密工作正常,但解密出现错误,因为密码想要一个字节,我想从字符串加密 import javax.crypto.Cipher; import javax.crypto.spec
我是一名优秀的程序员,十分优秀!