
正文
java企业源代码加密 源代码如何加密
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何对公司的源代码加密?
java企业源代码加密你做源代码加密无非是想要对公司java企业源代码加密的源代码进行保护。越来越多的企业开始注重这一点了。
目前java企业源代码加密我所知道的对源代码加密的办法有两种:一种是物理性的“源代码加密”,一种是软件性的源代码加密。
物理性“源代码加密”就是指截断外网,封掉U口(或者锁机箱),让开发者完全处于一种封闭的状态,这种方法是可以达到效果的,弊端就是实施过程也不是那么简单,并且程序员写代码查资料不方便,如果给每人再增加一台电脑,那成本就很大了,而做开发的人恰好随时随地都要查阅资料。
软件性的源代码加密是指通过软件对源码进行保护的工作。目前市面上最流行的源代码加密软件是一种对开发人员的操作环境进行加密的软件,不用对任何硬件做修改,开发人员所有的开发数据都只能存放在公司范围里,拿不出被加密的空间。如果想要拿出来必须要走审批流。我们公司自己也在用这种产品,我们用的是沙盒SDC系统,我个人觉得我们选它的原因就是厂商服务挺好,加密时不改变源文件类型、大小,而且开发人员可以自由上网并且不用担心泄密,这样就完美实现了开发人员开发数据时可以查资料的要求。
你要是有什么问题可以给我留言。望采纳。
相关问答
Q1: 怎样为一个java程序加密? 谢谢
只给编译后java企业源代码加密的.jar文件java企业源代码加密,不给.java文件
不过要说明的是java企业源代码加密,java因为是字节码,所以没有办法防止被反编译。
最多也就是做一下代码混淆,比如把方法或变量名改成无意义的名称,或者加一些完全无用的代码进去,让恶意攻击的人难以看懂
Q2: java项目如何加密?
Java基本的单向加密算法:
1.BASE64 严格地说,属于编码格式,而非加密算法
2.MD5(Message Digest algorithm 5,信息摘要算法)
3.SHA(Secure Hash Algorithm,安全散列算法)
4.HMAC(Hash Message Authentication Code,散列消息鉴别码)
按 照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。
主要就是BASE64Encoder、BASE64Decoder两个类,我们只需要知道使用对应的方法即可。另,BASE加密后产生的字节位数是8的倍数,如果不够位数以=符号填充。
MD5
MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都 是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文 件是否一致的。
HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个 标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证 等。
Q3: 公司的源代码应该怎么保护,防止泄密呢?
首先要明确java企业源代码加密,哪些数据是核心机密数据,不能让普通员工轻易接触到的,即使是研发型公司的代码,也是会划分等级的,要在保证员工的工作效率的前提下,对代码实施保护措施。
下面简单谈一下java企业源代码加密我的看法,讲讲如何防止员工的代码泄露。
首先要明确以下两点:
1、不影响被防范的成员(比如新程序员)工作。让其能正常运行、调试、查看日志等。
2、对核心代码封死,需要保护的部分不可见。
再来看看有哪些具体做法:
签署保密协议
对源代码分级,清楚知道什么是需要保护的
为版本管理服务器上的工程设置读取密码
源码版本控制,按照职责和权限进行划分
确保架构做分层
屏蔽USB和光驱
每人两台电脑,分别连接不同网络
封闭式开发、禁止上互联网
使用加密软件
使用加水印功能
使用云桌面技术
实施网络隔离
……
当然,每个公司会根据自身的实际情况来选择一种适合的方法,前提是不影响员工工作效率,不能让员工产生抵触情绪。公司的价值都是员工创造的,所以一定要秉着以人为本的原则,让员工对公司忠诚,减少离职,这才是利益最大化的方法。
在以上这些方法中,个人较为推荐的是使用云桌面或者实施网络隔离,通过云桌面实现数据不落地,防止被拷贝java企业源代码加密;实施网络隔离可以有效阻断数据的外泄。之前看过《企业网络隔离建设指南》,感觉还不错,推荐给大家参考一下。
Q4: 求java加密源代码(MD5,base64)
import java.security.*;
import javax.crypto.*;
/**
* 本例解释如何利用DES私钥加密算法加解密
*
* @author Devon
* @version 1.0 04/03/10
*/
public class SingleKeyExample {
public static void main(String[] args) {
try {
String algorithm = "DES"; //定义加密算法,可用 DES,DESede,Blowfish
String message = "Hello World. 这是待加密的信息";
// 生成个DES密钥
KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);
keyGenerator.init(56); //选择DES算法,密钥长度必须为56位
Key key = keyGenerator.generateKey(); //生成密钥
// 生成Cipher对象
Cipher cipher = Cipher.getInstance("DES");
//用密钥加密明文(message),生成密文(cipherText)
cipher.init(Cipher.ENCRYPT_MODE, key); //操作模式为加密(Cipher.ENCRYPT_MODE),key为密钥
byte[] cipherText = cipher.doFinal(message.getBytes()); //得到加密后的字节数组
System.out.println("加密后的信息: " + new String(cipherText));
//用密钥加密明文(plainText),生成密文(cipherByte)
cipher.init(Cipher.DECRYPT_MODE, key); //操作模式为解密,key为密钥
byte[] sourceText = cipher.doFinal(cipherText); //获得解密后字节数组
System.out.println("解密后的信息: " + new String(sourceText));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
/**
* @author Devon
*/
import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
public class PairKeyExample {
public static void main(String argv[]) {
try {
String algorithm = "RSA"; //定义加密算法,可用 DES,DESede,Blowfish
String message = "张三,你好,我是李四";
//产生张三的密钥对(keyPairZhang)
KeyPairGenerator keyGeneratorZhang =
KeyPairGenerator.getInstance(algorithm); //指定采用的算法
keyGeneratorZhang.initialize(1024); //指定密钥长度为1024位
KeyPair keyPairZhang = keyGeneratorZhang.generateKeyPair(); //产生密钥对
System.out.println("生成张三的公钥对");
// 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节
byte[] publicKeyZhangEncode = keyPairZhang.getPublic().getEncoded();
//通过网络或磁盘等方式,把公钥编码传送给李四
//李四接收到张三编码后的公钥,将其解码
KeyFactory keyFacoryLi = KeyFactory.getInstance(algorithm); //得到KeyFactory对象
X509EncodedKeySpec x509KeySpec =
new X509EncodedKeySpec(publicKeyZhangEncode); //公钥采用X.509编码
PublicKey publicKeyZhang = keyFacoryLi.generatePublic(x509KeySpec); //将公钥的KeySpec对象转换为公钥
System.out.println("李四成功解码,得到张三的公钥");
//李四用张三的公钥加密信息,并发送给李四
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); //得到Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, publicKeyZhang); //用张三的公钥初始化Cipher对象
byte[] cipherMessage = cipher.doFinal(message.getBytes()); //得到加密信息
System.out.println("加密后信息:" + new String(cipherMessage));
System.out.println("加密完成,发送给李四...");
//张三用自己的私钥解密从李四处收到的信息
cipher.init(Cipher.DECRYPT_MODE, keyPairZhang.getPrivate()); //张三用其私钥初始化Cipher对象
byte[] originalMessage = cipher.doFinal(cipherMessage); //得到解密后信息
System.out.println("张三收到信息,解密后为:" + new String(originalMessage));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
关于java企业源代码加密和源代码如何加密的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







