Delphi基础教程:InputLen属性详解

需积分: 37 4 下载量 65 浏览量 更新于2024-08-18 收藏 1.36MB PPT 举报
"在Delphi基础教程中,重点介绍了InputLen、InputMode和NullDiscard这三个重要的属性。InputLen属性是用于设置和返回由Input属性读取的字符数,这对于控制数据输入的长度和处理流式数据非常关键。InputMode属性则用于设定接收数据的类型,例如文本模式(Text)还是二进制模式(Binary),这对于正确解析接收到的数据至关重要。NullDiscard属性决定是否忽略从端口接收到的NULL字符,这对于处理特殊字符的过滤或处理有明确的设定作用。 Delphi,由Borland公司开发,是一款强大的可视化软件开发环境,特别适合第四代编程语言。教程开始时简述了Delphi的发展历程,从最初的Delphi1到Delphi7,每一代都有显著的进步,比如Delphi2引入32位编程支持,Delphi3增强组件库,Delphi5提升数据库功能,而Delphi6和Delphi7则大大扩展了组件数量和功能,以适应网络开发的需求。 在Delphi7的集成开发环境中,IDE的设计十分直观,包括主窗口、组件面板、工具栏等多个组成部分。主窗口的菜单栏和工具栏提供丰富的功能,组件面板则是实现可视化编程的核心,包含了大量的VCL组件和ActiveX组件。通过单击或双击组件面板上的按钮,用户可以方便地将组件添加到窗体上进行开发。 对于初学者来说,理解这些基础属性和IDE的使用是至关重要的,它们直接影响到程序的性能和数据处理的准确性。掌握好InputLen、InputMode和NullDiscard,能够帮助开发者更有效地管理输入数据,提高编程效率。"

私钥解密 /** * 私钥解密 * * @param data 待解密数据 * @param key 私钥 * @return byte[] 解密数据 / public static String decryptByPrivateKey(byte[] data, byte[] key) { try { //取得私钥 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); //生成私钥 PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); //对数据进行解密 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, privateKey); //分段解密 int inputLen = data.length; //开始点 int offSet = 0; ByteArrayOutputStream out = new ByteArrayOutputStream(); while (inputLen - offSet > 0) { if (inputLen - offSet > MAX_DECRYPT_BLOCK) { out.write(cipher.doFinal(data, offSet, MAX_DECRYPT_BLOCK)); } else { out.write(cipher.doFinal(data, offSet, inputLen - offSet)); } offSet = offSet + MAX_DECRYPT_BLOCK; } byte[] decryptedData = out.toByteArray(); out.close(); return new String(decryptedData, "UTF-8"); } catch (Exception e) { log.error("rsaDecrypt error:" + e.getMessage()); } return null; } /* * @param originData * @return / public static String toJsonParam(String originData) { try { return URLDecoder.decode(originData, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); log.error("参数解析失败"); } return null; } /* * 获取私钥 * * @param keyMap 密钥Map * @return String 私钥 / public static String getRSAPrivateKey(Map<String, Object> keyMap) { Key key = (Key) keyMap.get(RSA_PRIVATE_KEY); return Base64Utils.encodeToString(key.getEncoded()); } /* * 获取公钥 * * @param keyMap 密钥Map * @return String 公钥 */ public static String getRSAPublicKey(Map<String, Object> keyMap) { Key key = (Key) keyMap.get(RSA_PUBLIC_KEY); return Base64Utils.encodeToString(key.getEncoded()); } 请你将该段代码改写成Python

2023-06-10 上传