当前位置: 首页 > article >正文

pythonrsa加密与sha256加密

这个比较有意思,不过我前端不太熟悉,js也是二懂二懂的。

登录校验

最近的业务涉及到这一块,这边分析前端的源代码、发现涉及两种登录方式。
首先在这边找前端源代码

sha256

xxxx: function() {

     var t = a("6c27").sha256;
     l["a"].post("login/xxxx", {
         userCode: this.loginForm.usercode
     }).then((function(a) {
         var i = a.data;
         i && i.data && !i.data.firstLoginFlag && i.data.hash && i.data.ts ? (e.shaStr = t(i.data.hash + i.data.ts),
         e.sildeSuccessCallBack(!1)) : e.isShow = !0
     }
     )).catch((function(t) {
         e.loginText = "登 录",
         e.loading = !1,
         e.$message({
             message: "网络错误,请刷新重试",
             type: "warning"
         }),
         console.log(t)
     }
     ))
 },

首先分析后端接口,再从前端源代码中搜索对应的urllogin/xxxx,这里是通过链接获取会话id,与时间timestamp,相加,加了后进行sha256加密。t(i.data.hash + i.data.ts)

import hashlib
def sha256_hash(text):
    if not isinstance(text, bytes):
        text=text.encode('utf-8')
    hash_object = hashlib.sha256()
    hash_object.update(text)
    hex_dig = hash_object.hexdigest()
    return hex_dig

RSA加密

Object(l["a"])({
    method: "post",
    url: "/login/xxxx"
}).then((function(s) {
    if (0 === s.data.status) {
        var p = o.a.KEYUTIL.getKey(s.data.data)
          , m = o.a.KJUR.crypto.Cipher.encrypt(u, p)
          , v = o.a.hextob64(m)
        };
}

rsa的一个特点是每次加密结果都不一样,因为有随机的padding,这里可以看到加密是先获取公钥,再加密,最后转为base64。

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pksc1_v1_5
import base64
def encrpt(password, public_key):
    rsakey = RSA.importKey(public_key)
    cipher = Cipher_pksc1_v1_5.new(rsakey)
    cipher_text = base64.b64encode(cipher.encrypt(password.encode())).decode()
    # cipher_text = sha256_hash(cipher.encrypt(password.encode()))
    return cipher_text

http://www.kler.cn/a/550745.html

相关文章:

  • 【亚马逊开发者账号02】终审问题SA+review_Pre-review+Doc.xlsx
  • 串的基本操作--数据结构
  • Copilot基于企业PPT模板生成演示文稿
  • AI前端开发赋能自主创业:ScriptEcho助你乘风破浪
  • 【kafka系列】Kafka如何保证消息不丢失?
  • Leetcode 3458. Select K Disjoint Special Substrings
  • qt实现文字跑马灯效果
  • 【CVE-2025-1094】 影响 SQL 注入的 PostgreSQL
  • CMS DTcms 靶场(弱口令、文件上传、tasklist提权、开启远程桌面3389、gotohttp远程登录控制)
  • 基于SSM框架的童装购买平台微信小程序(ssm论文源码调试讲解)
  • 矩阵系统源码搭建之多种剪辑功能技术开发,支持OEM
  • 通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
  • Pikachu靶场-SSRF漏洞
  • matlab模拟风场的随机脉动风
  • Weboffice在线Word权限控制:限制编辑,只读、修订、禁止复制等
  • 点击el-dialog弹框跳到其他页面浏览器的滚动条消失了多了 el-popup-parent--hidden
  • Hadoop 基础原理
  • 长视频生成、尝试性检索、任务推理 | Big Model Weekly 第56期
  • zola + github page,用 workflows 部署
  • 《深度学习》—— DataLoader数据处理、transforms