ab.keys.crypto加密导致Python高版本镜像无法调用
Traceback (most recent call last):
File "/usr/local/bin/abt", line 5, in <module>
from ab.client.cli import cli
File "/usr/local/lib/python3.8/site-packages/ab/client/cli.py", line 3, in <module>
from ab.client.crypto_cli import crypto_impl
File "/usr/local/lib/python3.8/site-packages/ab/client/crypto_cli.py", line 4, in <module>
from ab.keys.crypto import ab_encryptFile
ModuleNotFoundError: No module named 'ab.keys.crypto'
项目中ab.keys.crypto文件是经过加密后的文件,使用python3.7以上版本镜像时无法直接调用该文件,导致加密失败。
查看源码发现代码加密不需要用到ab.keys.crypto文件引用,可以注释相关内容加密代码,但数据加密仍然需要crypto内容。
另外license的验证失败了,是否与使用license.py加密时step1函数中sout = [chr(ord(a) ^ ord(b)) for (a, b) in zip(input_line, cycle("your-key"))]的“your-key”有关?由于ab.keys.crypto的加密同样无法验证
请问能否提供一份未加密的crypto.py文件?
Traceback (most recent call last): File "/usr/local/bin/abt", line 5, in <module> from ab.client.cli import cli File "/usr/local/lib/python3.8/site-packages/ab/client/cli.py", line 3, in <module> from ab.client.crypto_cli import crypto_impl File "/usr/local/lib/python3.8/site-packages/ab/client/crypto_cli.py", line 4, in <module> from ab.keys.crypto import ab_encryptFile ModuleNotFoundError: No module named 'ab.keys.crypto'项目中ab.keys.crypto文件是经过加密后的文件,使用python3.7以上版本镜像时无法直接调用该文件,导致加密失败。 查看源码发现代码加密不需要用到ab.keys.crypto文件引用,可以注释相关内容加密代码,但数据加密仍然需要crypto内容。 另外license的验证失败了,是否与使用license.py加密时step1函数中
sout = [chr(ord(a) ^ ord(b)) for (a, b) in zip(input_line, cycle("your-key"))]的“your-key”有关?由于ab.keys.crypto的加密同样无法验证 请问能否提供一份未加密的crypto.py文件?
因为这个文件中包含了许可证验证逻辑,密钥等信息,所以没有开源。相关内容需要自己实现一下,空代码如下
import pyAesCrypt
import os
import io
import contextlib
import hashlib
from os import stat
from itertools import cycle
from datetime import timedelta, datetime, date
from ab.utils.exceptions import AlgorithmException
bufferSizeDef = 64 * 1024
def license_impl(create, days, verify):
if create is not None:
license_create(create, days)
if verify is not None:
license_verify(verify)
def license_create(path, days):
"""
###!!! 需实现 ###!!!
在指定path下创建许可文件,许可文件的有效期为days天
"""
pass
def license_verify(license_file_path):
"""
###!!! 需实现 ###!!!
验证 license_create 中创建的许可文件是否合法。
如果验证不通过,抛出异常
"""
pass
# 加密文件扩展名
SEC_FILE_POSTFIX = ".sec"
def decrypt_to_memory(infile):
"""
将加密文件解密并读取到内存ByteIO
:param infile:
:param passw_fun():
:param bufferSize:
:return:
"""
try:
with open(infile, "rb") as fIn:
try:
fOut = io.BytesIO()
inputFileSize = stat(infile).st_size
try:
# decrypt file stream
decryptStream(fIn, fOut, inputFileSize)
return fOut
except ValueError as exd:
# should not remove output file here because it is still in use
# re-raise exception
raise ValueError(str(exd))
except IOError:
raise ValueError("Unable to write output file.")
except ValueError as exd:
# remove output file on error
# re-raise exception
raise ValueError(str(exd))
except IOError:
raise ValueError("Unable to read input file.")
def ab_encryptFile(infile, outfile):
"""
###!!! 需实现 ###!!!
加密文件
"""
pass
def encryptStream(fIn, fOut):
pass
def decryptStream(fIn, fOut, inputLength):
"""
###!!! 需实现 ###!!!
解密文件流
"""
pass
def encrypt_file():
pass
def encrypt_stream():
pass
def encrypt_file2():
pass
def encrypt_file3():
pass
def encrypt_file4():
pass
好的非常感谢