当前位置:首页 » 编程语言 » python代码加密

python代码加密

发布时间: 2022-12-09 00:46:47

A. python中的如何给一个字符串加密

import rsa rsaPublickey = int(pubkey, 16) key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥 message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到 passwd = rsa.encrypt(message, key) #加密 passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。 return passwd

B. Python程序加密打包

步骤:
1、使用此文程序编译python源程序为pyd
链接: https://www.jianshu.com/p/4465cf9283b6
2、编写入口py文件,调用pyd模块
注意点:
1、由于pyinstaller不会导入pyd程序依赖包,所以需要将pyd程序依赖包在入口py文件中导入一次,避免打包exe时pyd无法使用
2、打包exe后,路径有所变化,pyd中路径需使用绝对路径
3、pyd文件不要写入口调用,if main等,在入口py文件中导包及调用相关函数

优点:脱离python环境,包依赖
缺点:文件较大
步骤:
1、将入口py文件打包为exe可执行程序,会自动导入pyd文件并进行封装
注意点:
1、打包exe后,cmd下运行程序,看是否有错误输出,按提示解决相应问题即可

C. 怎样对 Python 源码加密

代码加密
大概整理了以下几种方法:
编译成pyc文件
使用py2exe将python代码转成window下执行的exe文件
关键代码部分使用c或者c++写,然后在python中调用
用C写一个license,进行license验证
作为一门解释型的语言,加密的难度超级大。下面来简单分析上面的解决方案:
编译成pyc文件几乎跟pyc没有区别,保护力度太低
要是在linux机器上就没法使用,而且这种exe文件也可以被破解的
核心代码部分是计算密集型,用的是pandas,numpy等库,用c重写,简直不可能,工作量太大。
没搞过,不知道………
看来上面的解决方案都是不行的,在stackoverflow上对这个问题也进行了详细的讨论,用我蹩脚的英文来翻译(意译)一下得票率最高的:
“有什么方法来解决这个问题吗?(加密的问题)”没有。任何保护都可以被逆向工程破解。就连DVD机的固件都可以被破解,尽管法律判定其为非法,但是AACS加密密钥还是泄露出来。
因为没有技术的方法可以阻止你的客户看你的代码,你必须用传统的商业方法。
1. 许可证,合约,条款,条件。只要用户签订了这些东西,及时用户可以看见代码,也会有法律约束(不过此建议在中国目前貌似不顶用)
2. 提供巨大的价值。如果你的东西非常好,而且价格很合理,那么用户很难拒绝——没必要浪费时间和金钱去搞逆向工程啥的,因为逆向工程是很费银子的。让你的产品有足够的性价比。
3. 经常性的升级和增加新的功能,使得逆向工程不那么好使。当下一个版本破坏了逆向工程,那么以前的破解就没有意义了。
4. 定制化生产,为不同的客户提供不同的产品。(貌似代价有点高啊)
5. 使用有时间限制的许可证,这会给你带来不好的名声,但是会保证你的软件会停止工作
6. 设计为web service.
代码混淆
既然加密不是一个好方法,那要还是不死心,那就做一个简单的混淆算了,虽然只能”防君子,不防小人“。但是不能就这样把代码暴露出来。
这里推荐一个找了好久的东西: pyobfuscate这个东西在window7中的cmd中貌似总是混淆失败,无奈用了MINGW32,居然搞定了。官方的资料有这样的介绍:
pyobfuscate有几种转化代码的方式,有些可逆,有些不可逆。
移除注释和文档 ( 不可逆)
改变缩进(可逆)
在tokens之间加入空格(一定程度上可逆)
重命名函数,类,和变量(不可逆)
在空白行中加入无效的代码
我没有选择混淆函数名和类名,因为其他地方还要调用呢。下面是我混淆的结果,还挺好看的:
def my_fuction_to_test ( self , start_date , end_date ) :
iiiii11iII1 = self . get_something ( start_date , end_date )
O0o = [ ]
for oO0 in iiiii11iII1 :
if oO0 [ "isOpen" ] == 1 :
IIIi1i1I = { }
OOoOoo00oo = dt . strptime ( oO0 [ 'calendarDate' ] , '%Y-%m-%d' )
IIIi1i1I [ 'day' ] = OOoOoo00oo . strftime ( '%Y%m%d' )
IIIi1i1I [ 'week' ] = oO0 [ 'isWeekEnd' ]
IIIi1i1I [ 'month' ] = oO0 [ 'isMonthEnd' ]
IIIi1i1I [ 'weekday' ] = OOoOoo00oo . weekday ( )
O0o . append ( IIIi1i1I )
iiI11 = pd . DataFrame ( O0o )
return iiI11

D. python 如何保密源代码

python 如何保密源代码?

相关推荐:《Python教程》

加密方式
对 Python 加密时可能会有两种形式,一种是对Python转成的exe进行保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程。

1、对 python转exe加密,下载最新版Virbox Protector加密工具,使用加密工具直接对demo.exe进行加密操作。

2、对.py/.pyc加密。

第一步,使用加密工具对 python 安装目录下的 python.exe 进行加密,将 python.exe 拖入到加密工具 VirboxProtector 中,配置后直接点击加密。

第二步,对.py/.pyc 进行加密,使用 DSProtector 对.py/.pyc 进行保护。

E. 如何在python加密自己的密码

加密有很多种加密方式,常用的加密是md5加密,给你写个例子

importhashlib

defmd5(str):
m=hashlib.md5()
m.update(str.encode("utf8"))
print(m.hexdigest())
returnm.hexdigest()

defmd5GBK(str1):
m=hashlib.md5(str1.encode(encoding='gb2312'))
print(m.hexdigest())
returnm.hexdigest()

md5('hello')
md5GBK('你好')

F. python文本加密是什么

python文本加密是Python 提供了诸如 hashlib,base64 等便于使用的加密库,我们可以借助异或操作,实现一个简单的文件加密程序。

通过了解异或操作的性质,加密原理就非常清晰了。

首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。

将加密后的二进制程序与密钥进行异或操作,就得到原二进制数,最后将原二进制数恢复成文本文件。

相关拓展

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。

加密之所以安全,绝非因不知道加密解密算法方法,而是加密的密钥是绝对的隐藏,流行的RSA和AES加密算法都是完全公开的,一方取得已加密的数据,就算知道加密算法也好,若没有加密的密钥,也不能打开被加密保护的信息。

单单隐蔽加密算法以保护信息,在学界和业界已有相当讨论,一般认为是不够安全的。公开的加密算法是给黑客和加密家长年累月攻击测试,对比隐蔽的加密算法要安全得多。

尽管加密或为了安全目的对信息解码这个概念十分简单,但在这里仍需对其进行解释。数据加密的基本过程包括对称为明文的原来可读信息进行翻译,译成称为密文或密码的代码形式。该过程的逆过程为解密,即将该编码信息转化为其原来的形式的过程。

以上内容参考 网络-加密

G. 如果Python的源代码无法保密,那不是说所有的算法大伙都可以用

可以使用pymod对代码加密部署

先睹为快,看看一个项目发布的时候,只有几个文件,

main.py 项目程序入口

setting.py 项目配置

apps 项目模块

plusins 项目插件目录

pymod 使用指南,访问https://pymod.cn

H. python将原始字符串加3加密

Python 3 的标准库中没多少用来解决加密的,不过却有用于处理哈希的库。
如果需要用到安全哈希算法或是消息摘要算法,那么你可以使用标准库中的 hashlib 模块。这个模块包含了符合 FIPS(美国联邦信息处理标准)的安全哈希算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 算法。Python 也支持adler32 以及 crc32 哈希函数,不过它们在 zlib 模块中。

I. 利用以下python代码编写栏栅加密和解密

修改后运行结果:

a. 加密

1.进行栅栏加密
2.进行栅栏解密
请选择: 1
请输入分组数目 2
请输入列排编号 21
请输明文 abcdefgh
b a

d c

f e

h g

b. 解密

1.进行栅栏加密
2.进行栅栏解密
请选择: 2
请输入分组数目 2
请输入列排编号 21
请输密文 b a d c f e h g
abcdefgh

修改后的代码:
def Encrypt(n,col,M):
row=len(M)/n
if len(M)%n>0:
row+=1
arr=[[""for x in range(0,n)] for y in range(0,row)]
x=0
for i in range(0,row):
for j in range(0,n):
if x<len(M):
arr[i][j]=M[x]
#print M[x],
x+=1
#print "\r\n"

for i in range(0,row):
for j in range(0,n):
m=int(col[j])-1
print arr[i][m],
print "\r\n"

def Decrypt(n, col, C):
C="".join(C.split())
row=len(C)/n
if len(C)%n>0:
row+=1
arr=[[""for x in range(0,n)] for y in range(0,row)]
x=0
for i in range(0,row):
for j in range(0,n):
if x<len(C):
arr[i][j]=C[x]
#print C[x],
x+=1
#print "\r\n"

M=""
for i in range(0,row):
for j in range(0,n):
m=int(col[j])-1
#print arr[i][m],
M+=arr[i][m]
#print "\r\n"
print M

print u"1.进行栅栏加密\r\n2.进行栅栏解密\r\n请选择:".encode("gb2312"),

sel=raw_input()

if int(sel)==1:
print u"请输入分组数目".encode("gb2312"),
n=int(raw_input())
print u"请输入列排编号".encode("gb2312"),
col=raw_input()
print u"请输明文".encode("gb2312"),
M=raw_input()
while len(M)<n*3:
print u"明文必须是分组数目的3倍".encode("gb2312")
M=raw_input()
Encrypt(n,col,M)

else :
print u"请输入分组数目".encode("gb2312"),
n=int(raw_input())
print u"请输入列排编号".encode("gb2312"),
col=raw_input()
print u"请输密文".encode("gb2312"),
C=raw_input()
while len(C)<n*3:
print u"密文必须是分组数目的3倍".encode("gb2312")
C=raw_input()
Decrypt(n,col,C)

J. python封装成exe如何加密

可以直接用加密软件加密。据了解加密软件可以加密所有类型文件的,可以对文件进行透明加密,在内部环境文件是可以正常打开的,脱离这个环境则打不开或乱码,可以禁止截屏、拷贝、复制、打印、修改等。文件外发需授权解密,未授权解密无论以任何形式发出都是无法正常打开的,还可设置文件外发的浏览次数和打开时间。在不影响日常使用的情况下保障文件安全。

热点内容
用手机怎么查询服务器的ip 发布:2024-04-28 09:00:43 浏览:203
macps缓存 发布:2024-04-28 08:03:26 浏览:536
腾讯云服务器销售好做吗 发布:2024-04-28 08:03:23 浏览:585
编程的码 发布:2024-04-28 08:02:41 浏览:545
c封装数据库 发布:2024-04-28 07:59:27 浏览:682
CRT存储 发布:2024-04-28 07:57:42 浏览:136
硬阈值算法 发布:2024-04-28 07:52:31 浏览:869
iphone存储空间自动 发布:2024-04-28 07:40:11 浏览:953
培训php还是java 发布:2024-04-28 07:10:49 浏览:919
dal数据访问 发布:2024-04-28 07:09:00 浏览:522