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

爬虫做视频网站手机兼职app

爬虫做视频网站,手机兼职app,免费咨询电脑维修,石家庄建设工程信息网前景: 1、本项目原有功能RSA客户端对敏感信息进行加密 2、本次漏洞说是服务端返回值有敏感信息,需要密文返回 3、最初只跟H5联调成功,后续APP联调失败(H5和APP的需求排期不一致),没关注到通用性 方案: 本次方案不…

前景:

1、本项目原有功能RSA客户端对敏感信息进行加密

2、本次漏洞说是服务端返回值有敏感信息,需要密文返回

3、最初只跟H5联调成功,后续APP联调失败(H5和APP的需求排期不一致),没关注到通用性

方案:

本次方案不算完美,还是有被劫持篡改的风险,但基本https证书认证加持,风险相对较小

客户端本地存需要存三个值:

1、RSA公钥

2、随机生成16个字符

3、AES偏移量

java加密

安卓同服务端代码

@Slf4j
public class AESClientUtils {private static final String AES = "AES";private static final String STRING_FORMAT = "UTF-8";private static final String TRANSFORMATION = "AES/CBC/PKCS5Padding";//定义一个初始向量的值 AES偏移量,客户端和服务端保持统一值private static final String IV_STRING = "9999543210123666";/*** 加密** @param aesKey  AESkey* @param content 明文* @return 密文*/public static String encrypt(String aesKey, String content) {try {byte[] byteContent = content.getBytes(STRING_FORMAT);// 注意,为了能与 iOS 统一 这里的 key 不可以使用 KeyGenerator、SecureRandom、SecretKey 生成byte[] enCodeFormat = aesKey.getBytes();SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, AES);byte[] initParam = IV_STRING.getBytes();IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);// 指定加密的算法、工作模式和填充方式Cipher cipher = Cipher.getInstance(TRANSFORMATION);cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);byte[] encryptedBytes = cipher.doFinal(byteContent);// 同样对加密后数据进行 base64 编码return Base64Utils.encode(encryptedBytes);} catch (Exception e) {log.error("AES Client 加密失败 content={},encodeRules={}", content, aesKey, e);return null;}}/*** 解密** @param aesKey  AESkey* @param content 密文* @return 解密后的明文*/public static String decrypt(String aesKey,String content) {try {Base64.Decoder decoder = Base64.getDecoder();byte[] encryptedBytes = decoder.decode(content);byte[] enCodeFormat = aesKey.getBytes();SecretKeySpec secretKey = new SecretKeySpec(enCodeFormat, AES);byte[] initParam = IV_STRING.getBytes();IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);Cipher cipher = Cipher.getInstance(TRANSFORMATION);cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);byte[] result = cipher.doFinal(encryptedBytes);return new String(result, STRING_FORMAT);} catch (Exception e) {log.error("AES Client 解密失败 content={},encodeRules={}", content, aesKey, e);return null;}}}

H5解密

var iv = "9999543210123666";

        const ciphertext = response.data.info[ele]//保存本地的随机生成的16字节密钥const key = CryptoJS.enc.Utf8.parse(sessionStorage.getItem('key')) //AES的偏移量const iv = CryptoJS.enc.Utf8.parse('9999543210123666')// 解密const bytes = CryptoJS.AES.decrypt(ciphertext, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7,})// 解密后,需要将解密后的字符串转成UTF-8格式response.data.info[ele] = bytes.toString(CryptoJS.enc.Utf8)

IOS解密

先定义一个初始向量的值

NSString *const kInitVector = @"9999543210123666"

确定密钥长度,这里选择 AES-128。

size_t const kKeySize = kCCKeySizeAES128
+ (NSString *)decryptAES:(NSString *)content key:(NSString *)key {// 把 base64 String 转换成 DataNSData *contentData = [[NSData alloc] initWithBase64EncodedString:content options:NSDataBase64DecodingIgnoreUnknownCharacters];NSUInteger dataLength = contentData.length;char keyPtr[kKeySize + 1];memset(keyPtr, 0, sizeof(keyPtr));[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];size_t decryptSize = dataLength + kCCBlockSizeAES128;void *decryptedBytes = malloc(decryptSize);size_t actualOutSize = 0;NSData *initVector = [kInitVector dataUsingEncoding:NSUTF8StringEncoding];CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,kCCAlgorithmAES,kCCOptionPKCS7Padding,keyPtr,kKeySize,initVector.bytes,contentData.bytes,dataLength,decryptedBytes,decryptSize,&actualOutSize);if (cryptStatus == kCCSuccess) {return [[NSString alloc] initWithData:[NSData dataWithBytesNoCopy:decryptedBytes length:actualOutSize] encoding:NSUTF8StringEncoding];}free(decryptedBytes);return nil;
}

http://www.yayakq.cn/news/247320/

相关文章:

  • 番禺品牌型网站建设运行两个wordpress
  • 呼和浩特网站建设计算机培训短期速成班
  • 如何给异地网站做镜像网站开发能进无形资产吗
  • 大连开发区网站开发公司电话node.js做网站好累
  • 做360手机网站快wordpress订阅者投稿
  • 做网站广告中敏感词会涉及到工商手机网站开发源码
  • 攸县做网站的济南好的seo
  • vs做网站好不好中和华丰建设有限责任公司网站
  • 网站建设的总结100字谷歌推广公司
  • 网站模板内容怎么添加图片做带支付平台的网站
  • 云服务器 可以做网站吗拼多多商品关键词搜索排名
  • 网站地图html怎么做哈尔滨网页设计招聘
  • 毕业设计选择做网站的意义沧州青县机械加工网
  • 网站 工作室 建设 方案家具网站开发目的
  • 电销客户数据怎么买seo长尾快速排名
  • 大型电子商务网站建设2015年做那些网站致富
  • dwcc怎么做网站wordpress淘宝客 采集器
  • 深圳个人网站制作群晖打开wordpress4.9.8
  • 网站建设及解析流程北京有哪些电商平台公司
  • 某些网站网速慢怎样创建网站赚钱
  • h5网站设计报价济宁企业网站建设
  • 浙江备案需要开启网站吗余姚网站建设公司
  • 企业网站建设 广州北京市公司网站制作
  • 江苏省建设厅工会网站佛山债优化
  • 寮步镇做网站大连哪家做网站比较好
  • 重庆建设银行网站工信部网站备案用户名
  • 大型网站开发 广州中国企业在线
  • 建设银行网站的机构有哪些投资公司注册经营范围
  • 比较好用的网站网站搜索优化
  • 网站推荐公司网站设计报价