「java上传文件时加密」上传文件怎么加密

博主:adminadmin 2022-12-12 06:51:07 74

本篇文章给大家谈谈java上传文件时加密,以及上传文件怎么加密对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么用java现实文件加密之后上传

的问题是先加密,然后传输

不是在传输中加密

解决一:

改变好的算法,保护好你的种子数,别人得到了算法也不知你的内容

解决二:

利用混摇器混摇代码,但未必从根本上解决问题

有什么办法能针对Java加密

针对Java,现提供2种加密解决办法:

1、HASP加密锁提供的外壳加密工具中,有一个叫做DataHASP数据加密的功能,这个功能可以很好的防止反编译而去掉api的调用,大家知道:硬件加密锁的保护原理就是让加密过的软件和硬件紧密相连,调用不会轻易地被剔除,这样才能持久地保护您的软件不被盗版,同时,这种方式使用起来非常简单,很容易被程序员掌握,要对一个软件实现保护,大约只需几分钟就可以了。下面简要介绍一下它的原理:

运用HASP HL的外壳工具先把当作一个数据文件来进行加密处理,生成新的java程序,因为这个加密过程是在锁内完成的,并采用了128位的AES算法,这样,加密后的java程序,无论你采用什么样的反编译工具,都是无法反编译出来。您的软件也只有被加密过的java解释器并有加密锁的情况下才能正常运行,如果没有加密锁,程序不能运行,从而达到真正保护您的软件的目的,该方法只支持Windows平台。

2、HASP提供专门针对java外壳加密工具,直接加密jar或war包,防止反编译,目前支持J2SE,J2EE主要支持容器为TOMCAT6.0以上,可在Windows和Linux平台下运行,如果情况适合则是最简单的使用方法。

请问用java如何对文件进行加密解密?

package com.palic.pss.afcs.worldthrough.common.util;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

import repack.com.thoughtworks.xstream.core.util.Base64Encoder;

/**

 * AES加密解密

 * @author EX-CHENQI004

 *

 */

public class AesUtils {

public static final String cKey= "assistant7654321";

  /** 

     * 加密--把加密后的byte数组先进行二进制转16进制在进行base64编码 

     * @param sSrc 

     * @param sKey 

     * @return 

     * @throws Exception 

     */  

    public static String encrypt(String sSrc, String sKey) throws Exception {  

        if (sKey == null) {  

            throw new IllegalArgumentException("Argument sKey is null.");  

        }  

        if (sKey.length() != 16) {  

            throw new IllegalArgumentException(  

                    "Argument sKey'length is not 16.");  

        }  

        byte[] raw = sKey.getBytes("ASCII");  

        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");  

  

        Cipher cipher = Cipher.getInstance("AES");  

        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);  

  

        byte[] encrypted = cipher.doFinal(sSrc.getBytes("UTF-8"));  

        String tempStr = parseByte2HexStr(encrypted);  

  

        Base64Encoder encoder = new Base64Encoder();  

        return encoder.encode(tempStr.getBytes("UTF-8"));  

    }  

  

    /** 

     *解密--先 进行base64解码,在进行16进制转为2进制然后再解码 

     * @param sSrc 

     * @param sKey 

     * @return 

     * @throws Exception 

     */  

    public static String decrypt(String sSrc, String sKey) throws Exception {  

  

        if (sKey == null) {  

            throw new IllegalArgumentException("499");  

        }  

        if (sKey.length() != 16) {  

            throw new IllegalArgumentException("498");  

        }  

  

        byte[] raw = sKey.getBytes("ASCII");  

        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");  

  

        Cipher cipher = Cipher.getInstance("AES");  

        cipher.init(Cipher.DECRYPT_MODE, skeySpec);  

  

        Base64Encoder encoder = new Base64Encoder();  

        byte[] encrypted1 = encoder.decode(sSrc);  

  

        String tempStr = new String(encrypted1, "utf-8");  

        encrypted1 = parseHexStr2Byte(tempStr);  

        byte[] original = cipher.doFinal(encrypted1);  

        String originalString = new String(original, "utf-8");  

        return originalString;  

    }  

  

    /** 

     * 将二进制转换成16进制 

     *  

     * @param buf 

     * @return 

     */  

    public static String parseByte2HexStr(byte buf[]) {  

        StringBuffer sb = new StringBuffer();  

        for (int i = 0; i  buf.length; i++) {  

            String hex = Integer.toHexString(buf[i]  0xFF);  

            if (hex.length() == 1) {  

                hex = '0' + hex;  

            }  

            sb.append(hex.toUpperCase());  

        }  

        return sb.toString();  

    }  

  

    /** 

     * 将16进制转换为二进制 

     *  

     * @param hexStr 

     * @return 

     */  

    public static byte[] parseHexStr2Byte(String hexStr) {  

        if (hexStr.length()  1)  

            return null;  

        byte[] result = new byte[hexStr.length() / 2];  

        for (int i = 0; i  hexStr.length() / 2; i++) {  

            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);  

            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),  

                    16);  

            result[i] = (byte) (high * 16 + low);  

        }  

        return result;  

    } 

    public static void main(String[] args) throws Exception {

/*

 * 加密用的Key 可以用26个字母和数字组成,最好不要用保留字符,虽然不会错,至于怎么裁决,个人看情况而定

 */

String cKey = "assistant7654321";

// 需要加密的字串

String cSrc = "123456";

// 加密

long lStart = System.currentTimeMillis();

String enString = encrypt(cSrc, cKey);

System.out.println("加密后的字串是:" + enString);

long lUseTime = System.currentTimeMillis() - lStart;

System.out.println("加密耗时:" + lUseTime + "毫秒");

// 解密

lStart = System.currentTimeMillis();

String DeString = decrypt(enString, cKey);

System.out.println("解密后的字串是:" + DeString);

lUseTime = System.currentTimeMillis() - lStart;

System.out.println("解密耗时:" + lUseTime + "毫秒");

}

}

用java实现文件加密,帮忙修改下代码

这个应该和你的文件内容有关,你文件里不是数字的,你用nextInt就会出错.

你文件里是下边的内容你试一下

111111

2222

333

444

请问 上传文件的时候想在前端先进行加密?

可以用合力天下安全准入网关,文档上传自动解密,下载自动加密。

java上传文件时加密的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于上传文件怎么加密、java上传文件时加密的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-12,除非注明,否则均为首码项目网原创文章,转载请注明出处。