小编RHL*_*HLK的帖子

在Python PyQt桌面应用程序中安全地验证和授权用户

我开发的应用程序规定软件应该防止未经授权的访问.为了实现这一点,我使用了基于用户和密码的身份验证,并提供了两个角色 - 标准用户和管理员.

这完全在Python中实现,使用SQLAlchemy与数据库进行交互,PyQt用于用户界面.

使用brcypt对输入的密码进行哈希处理,然后将数据库中存在的哈希值与相应的用户名(Web服务中使用的标准身份验证技术)进行比较.

身份验证成功后,调用的变量将self.authenticatedUser保存类的SQLAlchemy实例User.

这种实现的结果是任何人都可以编辑登录方法,直接查询数据库直接查找User具有用户名admin 的类型的对象,并将返回的SQLAlchemy实例分配给黑客User,self.authenticatedUser并且黑客可以访问该系统.

因为,我正在分发用python编写的这个软件,黑客(或任何类型的程序员)禁用身份验证机制只需几分钟.此外,我无法通过获取登录登录令牌在此处使用Web服务进行身份验证或授权,因为该软件将在具有空隙的环境中使用.

有没有具体的方法以更安全的方式实现这一点?

  1. 使用本地MySQLDatabase
  2. 使用安全(相对难以逆向工程可能是合适的)机制.

python security authentication desktop-application sqlalchemy

10
推荐指数
1
解决办法
563
查看次数

Three.js:创建一个直角三棱柱

我正在尝试制作一个直角三角棱镜.

到目前为止,这是我的代码:

var triangleGeometry = new THREE.Geometry(); 
triangleGeometry.vertices.push(new THREE.Vector3(-1.0,  1.5, 0.95));  
triangleGeometry.vertices.push(new THREE.Vector3(-1.0, -1.5, 0.95)); 
triangleGeometry.vertices.push(new THREE.Vector3( 1.0, -1.5, 0.95));
triangleGeometry.vertices.push(new THREE.Vector3(-1.0,  1.5, 1.2));  
triangleGeometry.vertices.push(new THREE.Vector3(-1.0, -1.5, 1.2)); 
triangleGeometry.vertices.push(new THREE.Vector3( 1.0, -1.5, 1.2));

triangleGeometry.faces.push(new THREE.Face3(0, 1, 2));
triangleGeometry.faces.push(new THREE.Face3(3, 4, 5));
// Points 1,4,3 and 6 form a rectangle which I'm trying to construct using triangles 0,2,5 and 0,3,5
triangleGeometry.faces.push(new THREE.Face3(0, 2, 5));
triangleGeometry.faces.push(new THREE.Face3(0, 3, 5));

var triangleMaterial = new THREE.MeshBasicMaterial({ 
color:0xFFFFFF, 
side:THREE.DoubleSide 
});

var triangleMesh = new THREE.Mesh(triangleGeometry, …
Run Code Online (Sandbox Code Playgroud)

javascript math three.js

2
推荐指数
1
解决办法
5052
查看次数