使用JAVA调用KRPANO加密XML
KRPano自带的命令行工具krpanotools可以加密XML,具体的参数说明如下
语法:
krpanotools32.exe encrypt [OPTIONS] inputfiles
inputfiles 参数可以是任意个数的文件 (支持*)
选项:
-h5 … 使用HTML5兼容的加密方式
-bin … 使用仅支持Flash的加密方式
-p … 使用公共密钥加密
-z … 加密并压缩文件
-ow … 覆盖源文件
-bk … 覆盖源文件并备份源文件
-in=# … 手动设置待加密文件路径
-out=# … 手动设置输出文件路径
-q … 不显示输出信息
例如,下面的例子会把目录下的tour.xml加密,加密后保存为tour_enc.xml
krpanotools32 encrypt -in="tour.xml" -out="tour_enc.xml"
我们可以在Java代码中调用该命令行,实现通过程序去加密XML文件
import java.io.IOException;
import java.lang.ProcessBuilder;
import java.io.*; public class KrXmlEncryption {
public static void main(String[] args) throws IOException {
encryptXML("tour.xml", "tour_enc.xml");
} public static void encryptXML(String srcPath, String outPath) throws IOException {
Process process = new ProcessBuilder("krpanotools32.exe", "encrypt", "-z", String.format("-in=\"%s\"", srcPath),
String.format("-out=\"%s\"", outPath)).start();
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
}
}
encryptXML函数有两个参数
srcPath:XML源文件的路径
outPath:XML加密后文件保存的路径
调用该函数可以把srcPath的XML加密后保存到outPath
如果你需要更强力的加密方式,可以参考这篇文章
http://www.krpano.tech/archives/187
本博文发表于:http://www.krpano.tech/archives/546
发布者:屠龙
转载请注明出处,谢谢!
使用JAVA调用KRPANO加密XML的更多相关文章
- 【krpano】加密XML手动解密分析
krpano允许对XML文件进行加密,对XML进行相应的保护.加密分为两种,第一种为公共加密,即允许其他krpano全景读取该XML,而另一种为私有加密,仅允许加密的用户读取XML.两种加密方式的算法 ...
- c#调用JAVA的Webservice处理XML数据及批量轮询的实现方法
前段时间做一个调用外单位WEBSERVICE的项目,项目完成的功能其实很简单,就是我们单位有很多车友会员,我们想对他们提供车辆违章信息告之服务!我们这边交警部门给我们开放了WS的接口,我们就是想通过这 ...
- java 调用ant的自己定义task,默认不是build.xml 的一点问题
java 调用ant的自己定义task, File buildFile = new File(".//ee-build.xml"); // 创建一个ANT项目 ...
- Java 调用翻译软件实现英文文档翻译
前言: 因最近要进行OCP的考试准备.看着大堆英文文档确实有些疼痛.又因文档内容有点大,又需要逐一去翻译 又很费时费力.于是 百度了一番,找到一些 可以使用Java来调用百度翻译软件的API( 注:( ...
- PHP&Java 调用C#的WCF
步骤一:用C#声明WCF [ServiceContract] public interface IService1 { [OperationContract] void DoWork(); [Oper ...
- JAVA调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...
- 存储过程详解与java调用(转)
存储过程的一些基本语法: --------------创建存储过程----------------- CREATE PROC [ EDURE ] procedure_name [ ; number ] ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- Rsession让Java调用R更简单
Rsession让Java调用R更简单 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒. ...
- java 调用webservice的各种方法总结
java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...
随机推荐
- [abc279 G] At Most 2 Colors
G - At Most 2 Colors (atcoder.jp) 重点讲解方法三,因为方法三是蒟蒻都能想出来的方法一和方法二都可以借助方法三的思想推出 方法一 这是最简单的设置状态的方法,\(dp[ ...
- 解决org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource **/**/dao/**Mapper.xml问题
1. 问题分析 出现此问题的原因是资源过滤的问题,编写在DAO包中的XML文件没有被打包. 2. 解决方案 在pom.xml文件中加入如下资源过滤: <!-- 静态资源导出问题 --> & ...
- 「AntV」L7地理可视化:从入门到实践
1. 前言 这是一篇由浅入深的AntV L7的学习笔记总结,记述了从了解到使用的一些过程 本文所使用的数据(包括数据处理过程)和代码均有详细描述,所有案例均可复现,甚至大部分代码可直接使用 如果喜欢分 ...
- rust随笔
# 第二章 语言精要 好读书,不求甚解:每有会意,便欣然忘食. **动手,动手,动手!!!** ## 语句与表达式 Rust 中语法可以分成两大类:语句 statement 和表达式 expres ...
- 批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)
云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据.计算资源和时间等资源,并且对超参数的调整也要求较高,更适合在云 ...
- 如何构建您的第一部AWS机器学习服务
目录 <如何构建您的第一部 AWS 机器学习服务> 背景介绍 随着深度学习的广泛应用于机器学习领域的各个方面,AWS 成为了一种重要的深度学习平台.作为 AWS 机器学习服务的第一部,如何 ...
- iOS Block笔记总结
前言: 对block的简单笔记总结, 1.本质: 封装了函数调用和函数调用环境的对象 2.block结构: 3.block捕获变量: 由于需要跨函数访问变量,所以需要捕获变量,(防止访问时已被销毁) ...
- iostream,iostream.h,stdio.h的纠葛
include <iostream.h>非标准输入输出流 include 标准输入输出流 C++中为了避免名字定义冲突,特别引入了"名字空间的定义",即namespac ...
- 记一次 zabbix item became not supported 问题处理
现象 配置了一个自定义监控项,超过 5m nodata 就会告警,最近触发了两次.通过日志查看,有一对相隔10分钟的告警: 时间t0: item xxx became not support: Tim ...
- node: #!/usr/bin/env node
声明 windows中不支持Shebang,它是通过文件的扩展名来确定使用什么解释器来执行脚本 参考链接: https://juejin.cn/post/6844903826344902670