使用JAVA调用KRPANO加密XML

摘要:
使用仅支持Flash的加密方法-p…使用公钥加密-z…加密并压缩文件-ow…覆盖源文件并备份源文件-in=#…手动设置要加密的文件路径-out=#

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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇多个类用@feignclient标注同一个服务,出错问题:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.Caused by: org.springframework.beans.factory.support.Bea..c++消息队列的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ReactNative: 了解相机第三方库react-native-camera的使用

一、简介 在前一篇文章中,初步介绍了RN提供的关于相机功能CameraRoll的使用了。很多时候,这种最基础的API有时很难满足功能需求,此时,如果不想重复造轮子,我们可以选择一个完善好用的第三库。react-native-camera就是一个非常不错的关于相机功能的第三方库,使用这个框架基本能满足大多数的需求,现在来简单研究一下。 二、安装 1、同样地道...

手把手教学在Springboot中搭建使用Guava cache,包教包会,不会我输一包辣条给你

 guava cache使用简介   概述   缓存是日常开发中经常应用到的一种技术手段,合理的利用缓存可以极大的改善应用程序的性能。   Guava官方对Cache的描述连接   缓存在各种各样的用例中非常有用。例如,当计算或检索值很昂贵时,您应该考虑使用缓存,并且不止一次需要它在某个输入上的值。   缓存ConcurrentMap要小,但不完全相同。最...

Socket通讯-C#客户端与Java服务端通讯(发送消息和文件)

设计思路 使用websocket通信,客户端采用C#开发界面,服务端使用Java开发,最终实现Java服务端向C#客户端发送消息和文件,C#客户端实现语音广播的功能。 Java服务端设计 package servlet.websocket; import java.io.IOException; import java.util.Map; imp...

INNO Setup 使用笔记

INNO Setup 使用笔记[Setup] AppName={#MyAppName} AppVerName={#MyAppVerName} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppUR...

Delphi管理多线程之线程局部存储:threadvar

尽管多线程能够解决许多问题,但是同时它又给我们带来了很多的问题。其中主要的问题就是:对全局变量或句柄这样的全局资源如何访问?另外,当必须确保一个线程中的某些事件要在另一个线程中的其他时间之前(或之后)发生时,该怎么办?这里将讲解通过使用由 Delphi提供的线程局部存储和 A P I为线程提供同步的方法。 这里先讲线程局部存储,下一篇再讲线程同步 线程局部...

UE4在Android调用Project Tango

  Project Tango应该说是Google一试水AR的设备,其中Project Tango主要二个功能,一个是获取深度信息,如MS的Kinect,有相当多的设备都有这个功能,二是第一人称相对定位,这个就没那么常见了,如果对这个设备有更深的兴趣,可以看知乎上的这二个链接。   Google Project Tango获取深度信息的原理是什么?   P...