前端JS采用哈希加密,后端python对前端传过来的哈希加密字符串进行验证,前后端的代码如何写
时间: 2024-09-15 21:14:19 浏览: 109
前端JavaScript通常使用哈希库如`crypto-js`或者内置的`Web Crypto API`来进行加密。这里以`crypto-js`为例:
```javascript
// 导入crypto-js库
const SHA256 = require('crypto-js/sha256');
// 用户输入的明文数据
let userInput = 'example text';
// 对明文进行SHA-256哈希处理
let hash = SHA256(userInput).toString();
// 将生成的哈希值发送给后端
axios.post('/api/validate-hash', {hash: hash})
.then(response => {
// 处理后端返回的结果
})
.catch(error => {
console.error('Hash validation failed:', error);
});
```
后端Python,比如使用Flask框架,可以这样接收并验证哈希:
```python
from flask import Flask, request, jsonify
import hashlib
app = Flask(__name__)
def verify_hash(hash_string):
# 使用Python的hashlib模块对接收到的哈希值进行解密
expected_hash = hashlib.sha256(b'userInput').hexdigest() # 假设userInput是你希望比较的数据
if hash_string == expected_hash:
return True
else:
return False
@app.route('/api/validate-hash', methods=['POST'])
def validate():
received_hash = request.json.get('hash')
if verify_hash(received_hash):
return jsonify({'status': 'success'})
else:
return jsonify({'status': 'failed', 'message': 'Hash does not match'}), 401
if __name__ == '__main__':
app.run()
```
阅读全文