RSA密文传输到后台+变空格

今天遇到的前端传过来的RSA加密后的密文密码,但是到到后段的时候拿到的值是
qG5LkMCE4lb6Xf1rKa/Y/BXnKvaaiwuT84/lDeQJ2rps9eeiFUnddgqh7IFl5Qckd8tA8O0QgqZWGfGwkKS2gKkwU3M0z5t2itYDP5EhEtycgvv3jYbo6Nt/ZAOfkBg8UVhaYqb66o4GrRm5t7Kfdl4RbCUA3fDI2gf1bZxB1jQ=(正常值)

cqPERaw1q3pyLf1/VHcCbnZzxUuamedz5qlXFbys1MVDJc UoxkiliRhqt9sKD8IRXdrzUbfi4oBLekQaBS7awTBmnbfD/7A/ceD9d OOE4Tp3VoWC3HcByTX8 oCHoOhE8LoDyjJ85BUyx8TZhIcmLARa2nEJke5ojIUJh401w=(前端传过来的密文多了空格)

cqPERaw1q3pyLf1/VHcCbnZzxUuamedz5qlXFbys1MVDJc UoxkiliRhqt9sKD8IRXdrzUbfi4oBLekQaBS7awTBmnbfD/7A/ceD9d OOE4Tp3VoWC3HcByTX8 oCHoOhE8LoDyjJ85BUyx8TZhIcmLARa2nEJke5ojIUJh401w=(URLdecode.decode(密文)得到的值)

cqPERaw1q3pyLf1%2FVHcCbnZzxUuamedz5qlXFbys1MVDJc+UoxkiliRhqt9sKD8IRXdrzUbfi4oBLekQaBS7awTBmnbfD%2F7A%2FceD9d+OOE4Tp3VoWC3HcByTX8+oCHoOhE8LoDyjJ85BUyx8TZhIcmLARa2nEJke5ojIUJh401w%3D(将接收到的密文进行了URLencode.encode(密文)这时特殊字符全部被换了)
解决方式
1 后端replace(“ ”,“+”);
2 前端用将前端的key参数进行编码encodeURIComponent(key)进行处理,然后传送
如果不是偶尔遇到改问题,或许永远都不知道这个东西


原因在于

URL传递字符串式,如果没有进行encodeURIComponent(key)的话,原始字符串在后台接收到后需要进行URLdecode.decode处理这时候会把特殊字符进行处理了,+就没了。因为+被当做字符串连接符了。前端处理一下就好了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用 `pycryptodome` 库来解析RSA密文。以下是一个简单的示例: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP # RSA密文和私钥 cipher_text = b'\x92\xd1\xee\x94\x82\xef\xfd\x1eU\x0f\x81\x9a\x8a\x98\x81\xbd\xdd\x19\xbb\x8f\xce\xa8\x9e\x1d\x6d\x06\x5d\x0f\x99\x06\x48\x7b\x98\xbf\x17\x17\x7f\x54\xde\x8c\x3d\x8c\x3b\x27\xec\x29\x94\x0c\x6e\xb7\x40\x87\x8d\x9f\x69\x1d\x8d\x5c\xb3\x0e\x64\x60\x83\x68\x0d\x0e\xf6\x46\x2a\x3e\xd5\x5c\x84\x1b\x9c\x70\x22\x3a\xfd\xdc\x0a\x7d\x13\xea\x28\x68\x2a\x6e\xcb\x4f\x42\x3f\x69\x9b\x0f\x16\x11\x11\x24\x9c\x39\x16\xee\x9f\x8c\x39\xf0\xae\x7e\x6d\x11\x6f\xbe\x3d\x97\x10\x4d\x3e\x0b\x0e\xf7\x9d\x43\x4b\x7a\x1e\x44\x0a\x2a\x81\x77\x47\x40\x61\x8d\x0b\x5c\x30\x15' private_key = b'-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCfA6KlqyR8sZ3Bu7jXov0pnpPdX3pEzZyO6w+2m0cNvWmL9YQ\njQmUk+P9jF0xZz9r7DQjw8JpUTtZ6Z5J8LzXzqXvS5WuL1Bjg3aPcWhnuE2nEgk\n6Q8WwZwqJ0RzD4O2lSdOj8nG+V6rjvG8G+RkZi6kXrPZGtj3Yh+5FrWUJ8xKXaO\nC5qzjjeT4+MGYiE60gJGBGh4vQIDAQABAoGAFKm8pJcKZ2H0UZlO4wW4iFfb7ux\njRUvTjb4QfjC5hE5pHvzDjSdLzUeG23WfNl0OQJ8fWN4sL0/0UbLJLzC2VZJW5R\nBvzB5K0CwI1wL+5NvV9D7XeV6qR8W9zS8mQZ7Yx2y3AxlOv8U0fSbZ6I+94Dv1YB\nDf8kUhWmD9j5Q9JyMN0CQQD7Oiq7YhWYnJUjL4pwiHqXosxv4zqYqJxR2XaL5y2k\nSs9M6xxLx+xyXTr6J0wzJ+7H1E5JqI8a6cK0a9YRvGK9AkEAyf8SCCiE2c5j7y+E\nAQkVXJQgHl9Uc5n2JnA9c5S7a4X8OgjVzW0vJ/a3zGZik1VJCVm+V7sSncxh2O7z\nzQj8NjYvLwJBAL6RvDl8NvGaqQcXG0pWc2qzQwC/3JHw9p3OzB7MlJ+8YJf3SDQs\njzWvLcUg5gjl/4vMEkXJj+O5NyJm8RZOv9kCQQC4Ej8Z9GtYs5+X+s0Xk9VQK2il\nWNBX2KQ+5Nj6nbH5WgX5pH/2Fq6h7PYpT7fErDxhHw+uV8XvDwzDpTc6tW7jAkEA\n4kXf5LHcpC3aZrPZvZJYBx2k4sIa1VbRzC0YjDj6iV3o9yJ7p1UQD4Zf9F1DDXl5\nXm/6yfG4eV4qXu+uNz3KjUzS4w==\n-----END RSA PRIVATE KEY-----' # 使用私钥解密 private_key_obj = RSA.importKey(private_key) cipher = PKCS1_OAEP.new(private_key_obj) plain_text = cipher.decrypt(cipher_text) print(plain_text.decode('utf-8')) ``` 在这个示例中,我们将RSA密文和私钥作为字节串传递给 `RSA.importKey()` 方法来创建私钥对象。然后,我们使用私钥对象创建 `PKCS1_OAEP` 密码对象,并使用该对象解密密文。最后,我们将解密的明文打印到控制台上。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值