python加密,flask加密!

前言

你好! 你正在看的这篇文章是小编我整理出来的利用pyarmor进行python工程或者flask等工程加密的方法以及踩过的坑,内容涵盖了windows下用pycharm加密和Linux的宝塔虚拟环境下加密的方式方法。

pyarmor不同(Windows,Linux)环境加密

经过不断的踩坑,发现pyarmor这个包加密是需要分环境的,Windows下加密后的文件是dll文件,会自动生成一个名为pytransform的文件夹,文件夹内包含一个_pytransform.dll的文件,看到dll后缀名的文件那就是Windows下加密才有的文件名,如果你楞要把Windows下加密的放在Linux环境下,那么等待你的结果只有“无法使用!”
同样的Linux环境下加密也不能放在Windows下使用,pytransform文件夹内的文件就会变成so的后缀名,包含一个_pytransform.so的文件。
综上所述,打包的环境并不通用,因此各位同学在打包时尤其要注意这点。

Windows下用pycharm打包方法

1、进入终端输入命令:

# 安装pyarmor
pip install pyarmor

或者你可以进入pycharm的
Python Packages 搜索pyarmor进行安装
因为新版的pycharm比较推荐这种安装方式,安装各种包也是非常的方便。
如上图所示
2、进入终端敲命令:

# 进行加密,注意这里是要以main.py同级目录下的所有的py文件进行加密
pyarmor o main.py

等待加密完成后会生成dist的目录,目录下的文件就是已经加密好的文件,将源文件进行备份,然后将dist目录下的文件替换掉源文件即可完成加密。
需要注意的是,如果你的项目是flask的,而启动文件如果是app.py那么不要将app.py进行加密,加密app.py后flask项目将无法启动,当然,如果你的启动文件是别的什么阿猫阿狗的名字同样不要加密,加密后无法启动。可以加密项目内的其他文件,加密后并不影响使用。
我试过使用flask的蓝图,是完全可以加密的,并且能正常运行。

2、生成本地授权证书的加密方式:

# 生成一个带日期的加密证书。
pyarmor l -e 2023-01-01 test01

如上面代码所示,2023-01-01就是指证书到期日,通过证书加密的程序如果超过2023-01-01那么程序将无法运行。后面的test01则是证书文件夹名。后面的携带证书加密的代码会用到。
运行上面的命令后会生成一个licenses的文件夹,文件夹内还会有一个test01的文件夹,在里面有一个license.lic文件,这就是刚刚生成的证书文件。

接下来我们输入携带证书参数的命令,来生成带失效日期的加密文件,命令如下:

# 生成一个带日期的加密的文件夹内。
pyarmor o --with-license .\licenses\test01\license.lic main.py

如上,寻找好路径,将携带证书生成到main.py文件中,如果运行时间超过了证书所设置时间将会提示:License is expired,而程序也无法运行。

Linux 下用pycharm打包方法

Linux下打包和Windows下打包,基本上没什么太大的区别,上面也说过了,其实就是生成的文件格式不同,这里就不再赘述!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据提供的引用内容,没有找到与Python+Flask+crsf相关的信息。但是,可以介绍一下Python+Flask+CSRF的相关内容。 CSRF(Cross-Site Request Forgery)跨站请求伪造,是一种常见的Web攻击方式。攻击者通过某些手段诱导用户点击链接或访问恶意网站,从而在用户不知情的情况下,以用户的身份向目标网站发送请求,执行某些恶意操作。 为了防止CSRF攻击,Flask-WTF提供了CSRF保护机制。在使用Flask-WTF时,需要在表单中添加一个隐藏字段,该字段包含一个加密的token,用于验证表单提交的来源是否合法。Flask-WTF会自动为每个表单生成一个CSRF token,并将其添加到表单中。 以下是一个使用Flask-WTF进行CSRF保护的示例: ```python from flask import Flask, render_template, request from flask_wtf.csrf import CSRFProtect from flask_wtf import FlaskForm from wtforms import StringField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'secret_key' csrf = CSRFProtect(app) class MyForm(FlaskForm): name = StringField('Name') submit = SubmitField('Submit') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate_on_submit(): name = form.name.data return 'Hello, {}'.format(name) return render_template('index.html', form=form) ``` 在上面的示例中,我们首先导入了CSRFProtect和FlaskForm类。然后,我们创建了一个名为MyForm的表单类,该类包含一个名为name的文本字段和一个名为submit的提交按钮。接下来,我们创建了一个名为index的视图函数,该函数渲染了一个名为index.html的模板,并将表单对象传递给模板。如果表单提交成功,则从表单中获取name字段的值,并返回一个包含该值的字符串。 在模板中,我们需要添加一个隐藏字段,以包含CSRF token。可以使用Flask-WTF提供的{{ form.csrf_token }}模板标签来生成该字段。以下是一个简单的index.html模板示例: ```html <!DOCTYPE html> <html> <head> <title>Flask-WTF CSRF Example</title> </head> <body> <h1>Flask-WTF CSRF Example</h1> <form method="post"> {{ form.hidden_tag() }} {{ form.name.label }} {{ form.name() }} {{ form.submit() }} </form> </body> </html> ``` 在上面的示例中,我们使用了Flask-WTF提供的hidden_tag()方法来生成一个包含CSRF token的隐藏字段。在表单中添加该字段后,Flask-WTF会自动验证表单提交的来源是否合法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qformat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值