两个input框校验大小值
时间: 2023-03-14 11:33:18 浏览: 134
我可以提供一些建议,但最终的决定取决于你。你可以考虑使用JavaScript来启用两个输入框,一个用于存储最小值,另一个用于存储最大值。此外,您还可以考虑使用正则表达式来校验输入的大小值是否符合您的要求。
相关问题
import zlib import struct import argparse import itertools parser = argparse.ArgumentParser() parser.add_argument("-f", type=str, default=None, required=True, help="MeowMeow.png") args = parser.parse_args() bin_data = open(args.f, 'rb').read() crc32key = zlib.crc32(bin_data[12:29]) # 计算crc original_crc32 = int(bin_data[29:33].hex(), 16) # 原始crc if crc32key == original_crc32: # 计算crc对比原始crc print('宽高没有问题!') else: input_ = input("宽高被改了, 是否CRC爆破宽高? (Y/n):") if input_ not in ["Y", "y", ""]: exit() else: for i, j in itertools.product(range(4095), range(4095)): # 理论上0x FF FF FF FF,但考虑到屏幕实际/cpu,0x 0F FF就差不多了,也就是4095宽度和高度 data = bin_data[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + bin_data[24:29] crc32 = zlib.crc32(data) if(crc32 == original_crc32): # 计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定 print(f"\nCRC32: {hex(original_crc32)}") print(f"宽度: {i}, hex: {hex(i)}") print(f"高度: {j}, hex: {hex(j)}") exit(0)
这是一段 Python 代码,用于对 PNG 图片进行 CRC 校验,检测图片的宽度和高度是否被修改过。程序通过打开指定的 PNG 文件,读取其中的二进制数据,计算出 CRC 校验值与原始的 CRC 校验值进行比较,如果相同则说明图片的宽度和高度没有被修改过,否则进行 CRC 爆破,通过枚举不同的宽度和高度组合来计算 CRC 校验值,直到找到与原始 CRC 校验值相同的组合为止,从而确定图片的宽度和高度。
如果你需要使用这段代码,需要先安装 Python 3 环境,并通过 pip 安装 argparse 和 itertools 两个库。然后将代码保存为 CRC.py 文件,通过命令行参数指定要进行 CRC 校验的 PNG 文件,例如:
```
python CRC.py -f MeowMeow.png
```
其中 MeowMeow.png 是你要进行 CRC 校验的 PNG 文件路径。执行程序后,如果图片的宽度和高度没有被修改过,则程序会输出宽高没有问题!否则会提示你是否进行 CRC 爆破,如果选择进行 CRC 爆破,则程序会枚举不同的宽度和高度组合,计算出 CRC 校验值,并与原始 CRC 校验值进行比较,直到找到与原始 CRC 校验值相同的组合为止,从而确定图片的宽度和高度。
用vue写导入时针对文件中数据进行校验,校验不通过时提示失败
好的,您可以通过以下步骤在 Vue 中实现文件校验和的计算以及校验失败时的提示:
1. 安装依赖
您需要安装两个依赖:crypto-js 和 vue-sweetalert2。crypto-js 用于计算文件的校验和,vue-sweetalert2 用于显示提示框。
```bash
npm install crypto-js vue-sweetalert2
```
2. 创建文件选择器
在模板中添加一个文件选择器,用于让用户选择要导入的文件。您可以使用 input 标签的 type 属性为 file 来创建文件选择器。
```html
<template>
<div>
<input type="file" ref="fileInput" @change="onFileChange" />
</div>
</template>
```
3. 监听文件选择器的 change 事件
当用户选择文件后,文件选择器会触发 change 事件。在 Vue 组件中,您可以使用 @change 指令监听 change 事件,并调用 onFileChange 方法处理文件。
```html
<template>
<div>
<input type="file" ref="fileInput" @change="onFileChange" />
</div>
</template>
<script>
import CryptoJS from 'crypto-js';
import Swal from 'vue-sweetalert2';
export default {
methods: {
onFileChange(event) {
const file = event.target.files[0];
// 校验文件类型和大小等规则
if (file.type !== 'text/plain') {
Swal.fire('错误', '只能导入文本文件', 'error');
return;
}
if (file.size > 1024 * 1024) {
Swal.fire('错误', '文件大小不能超过1MB', 'error');
return;
}
// 计算文件校验和
const reader = new FileReader();
reader.onload = () => {
const data = reader.result;
const checksum = CryptoJS.MD5(data).toString();
// 比较校验和并给出提示
if (checksum !== 'a7f4bf8b2fb17f5b8a52e4d7a6c6d9c9') {
Swal.fire('错误', '文件校验失败', 'error');
return;
}
// TODO: 文件校验通过,进行导入操作
};
reader.readAsText(file);
},
},
};
</script>
```
在 onFileChange 方法中,首先根据文件类型和大小等规则判断文件是否符合要求。如果不符合要求,使用 vue-sweetalert2 显示错误提示框,并返回。如果文件符合要求,使用 FileReader 对象读取文件内容,并使用 crypto-js 计算文件的校验和。最后,与预期的校验和进行比较,如果校验和不匹配,使用 vue-sweetalert2 显示错误提示框。
注意,上述代码中的预期校验和是硬编码的。在实际应用中,您应该根据具体情况生成预期的校验和,并将其保存在后端或前端配置文件中。
阅读全文