很久以前在网上找到一,不知道对LZ有无帮助
package TestNativeOutOfMemoryError;
import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
public class DesEncrypt {
Key key;
/**
* generate a KEY with the param
*
* @param strKey
*/
public void getKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* encrypt
*
* @param strMing to be encrypt
* @return
*/
public String getEncString(String strMing) {
byte[] byteMi = null;
byte[] byteMing = null;
String strMi = "";
try {
return byte2hex(getEncCode(strMing.getBytes()));
// byteMing = strMing.getBytes("UTF8");
// byteMi = this.getEncCode(byteMing);
// strMi = new String( byteMi,"UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
byteMing = null;
byteMi = null;
}
return strMi;
}
/**
* decrypt
*
* @param strMi
* @return
*/
public String getDesString(String strMi) {
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
try {
return new String(getDesCode(hex2byte(strMi.getBytes())));
// byteMing = this.getDesCode(byteMi);
// strMing = new String(byteMing,"UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
byteMing = null;
byteMi = null;
}
return strMing;
}
private byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
private byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina = null;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
public static String byte2hex(byte[] b) {
String hs = "";
String stmp = "";
for (int n = 0; n b.length; n++) {
stmp = (java.lang.Integer.toHexString(b[n] 0XFF));
if (stmp.length() == 1)
hs = hs + "0" + stmp;
else
hs = hs + stmp;
}
return hs.toUpperCase();
}
public static byte[] hex2byte(byte[] b) {
if ((b.length % 2) != 0)
throw new IllegalArgumentException("illlegal data");
byte[] b2 = new byte[b.length / 2];
for (int n = 0; n b.length; n += 2) {
String item = new String(b, n, 2);
b2[n / 2] = (byte) Integer.parseInt(item, 16);
}
return b2;
}
public static void main(String[] args) {
DesEncrypt des = new DesEncrypt();
des.getKey("aadd");
String strEnc = des.getEncString("Testing of DES encrypt");
System.out.println(strEnc);
String strDes = des.getDesString(strEnc);
System.out.println(strDes);
new DesEncrypt();
}
}
源代码加密
推荐风奥科技
金甲加密软件,保证原代码文件只能在公司内部正常使用,离开公司后即无法打开。只需要设定设计软件为受控程序,这些软件保存的任何格式的文件都将被自动加密;设定所有的与图片相关的文件格式为强制加密文件类型,当这些文件在进行拷贝时,会自动加密。
金甲加密软件在进行安全管控的同时,不改变操作者的操作习惯。安全
这个我没有。
给文件加密,我使用的是超级加密3000.
超级加密3000采用国际上成熟的加密算法和安全快速的加密方法,可以有效保障数据安全!
具体操作方法:
1 下载安装超级加密3000。
2 然后在需要加密的文件上单击鼠标右键选择加密。
3 在弹出的文件加密窗口中设置文件加密密码就OK了。
操作方法非常的简便,我建议您再加密文件的时候可以试试。
你做源代码加密无非是想要对公司的源代码进行保护。越来越多的企业开始注重这一点了。
目前我所知道的对源代码加密的办法有两种:一种是物理性的“源代码加密”,一种是软件性的源代码加密。
物理性“源代码加密”就是指截断外网,封掉U口(或者锁机箱),让开发者完全处于一种封闭的状态,这种方法是可以达到效果的,弊端就是实施过程也不是那么简单,并且程序员写代码查资料不方便,如果给每人再增加一台电脑,那成本就很大了,而做开发的人恰好随时随地都要查阅资料。
软件性的源代码加密是指通过软件对源码进行保护的工作。目前市面上最流行的源代码加密软件是一种对开发人员的操作环境进行加密的软件,不用对任何硬件做修改,开发人员所有的开发数据都只能存放在公司范围里,拿不出被加密的空间。如果想要拿出来必须要走审批流。我们公司自己也在用这种产品,我们用的是沙盒SDC系统,我个人觉得我们选它的原因就是厂商服务挺好,加密时不改变源文件类型、大小,而且开发人员可以自由上网并且不用担心泄密,这样就完美实现了开发人员开发数据时可以查资料的要求。
你要是有什么问题可以给我留言。望采纳。
源代码加密软件推荐使用赛虎信息科技的绿盾加密软件,是一套从源头上保障数据安全和使用安全的软件系统。采用的是文件透明加密模块,对平常办公使用是没有影响的。而且绿盾支持与SVN等源代码管理工具无缝结合。
如果企业内部SVN服务器采取透明模式,即加密文件是可以存放在SVN服务器上的,需要达到的效果是SVN服务器上文件密文存储。则配合天锐绿盾应用服务器安全接入系统来实现只有安装了加密客户端的Windows、Linux、MAC端才能够正常的访问公司内部的SVN服务器。
如果企业内部采用eclipse、VS等开发工具,从这些开发工具将代码直接上传到SVN服务器上时会自动解密。为了避免明文、密文混乱存放导致版本比对时出现错误等问题。因此,SVN服务器上需统一存放明文文件。则通过服务器白名单功能实现对终端电脑数据进行强制透明加密,对上传到应用服务器数据实现上传自动解密、下载自动加密。再配合天锐绿盾应用服务器安全接入系统实现只有安装了加密客户端的Windows、Linux、MAC端才能够正常的访问公司内部的SVN服务器。
赛虎信息科技为客户提供优质的内网安全管理产品和适合多种行业的应用解决方案。
请点击输入图片描述
首先要明确,哪些数据是核心机密数据,不能让普通员工轻易接触到的,即使是研发型公司的代码,也是会划分等级的,要在保证员工的工作效率的前提下,对代码实施保护措施。
下面简单谈一下我的看法,讲讲如何防止员工的代码泄露。
首先要明确以下两点:
1、不影响被防范的成员(比如新程序员)工作。让其能正常运行、调试、查看日志等。
2、对核心代码封死,需要保护的部分不可见。
再来看看有哪些具体做法:
签署保密协议
对源代码分级,清楚知道什么是需要保护的
为版本管理服务器上的工程设置读取密码
源码版本控制,按照职责和权限进行划分
确保架构做分层
屏蔽USB和光驱
每人两台电脑,分别连接不同网络
封闭式开发、禁止上互联网
使用加密软件
使用加水印功能
使用云桌面技术
实施网络隔离
……
当然,每个公司会根据自身的实际情况来选择一种适合的方法,前提是不影响员工工作效率,不能让员工产生抵触情绪。公司的价值都是员工创造的,所以一定要秉着以人为本的原则,让员工对公司忠诚,减少离职,这才是利益最大化的方法。
在以上这些方法中,个人较为推荐的是使用云桌面或者实施网络隔离,通过云桌面实现数据不落地,防止被拷贝;实施网络隔离可以有效阻断数据的外泄。之前看过《企业网络隔离建设指南》,感觉还不错,推荐给大家参考一下。