aes-256-java-bks

(JAVA) AES-256 Encryption / Decryption with Key Store Management using Bouncy Castle Keystore (BKS)

Overview:

This simple code allows you to encrypt/decrypt any kind of file using AES-256 standard. It uses Bouncy Castle Keystore for Key Management. Beside Encryption, the code allows you to manage your keystore, like Creating a new Keystore, Loading an existing keystore, adding key to an existing keystore, generating new Key with user Password, deleting key from a keystore or displaying keys from given keystore, all these features could be accessed at runtime, all you need to do is execute the program.[......]

阅读全文

ProGuard

Main

ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or higher, or for Java Micro Edition.[......]

阅读全文

源代码加密?

最近公司正在研究如何使用USB加密方式防止别人盗用我们程序。众所周知,java源代码被解密是一件很容易的事,而且解密后的文件也有一定的可读 性。公司觉得这是非常严重的事情,如果将来我们的程序不断在各个服务器上发布,却很难去监管。于是想出来这个点子去保护所谓的版权。[......]

阅读全文

用javascript与java进行RSA加密与解密

这几天一直做安全登录,网上查了好多资料,不尽如意。

具体实现思路如下:

1。服务端生成公钥与私钥,保存。

2。客户端在请求到登录页面后,随机生成一字符串。

3。后此随机字符串作为密钥加密密码,再用从服务端获取到的公钥加密生成的随机字符串。

4。将此两段密文传入服务端,服务端用私钥解出随机字符串,再用此私钥解出加密的密文。

这其中有一个关键是解决服务端的公钥,传入客户端,客户端用此公钥加密字符串后,后又能在服务端用私钥解出。[......]

阅读全文

MySQL的SSL加密连接与性能开销

前言
在生产环境下,安全总是无法忽视的问题,数据库安全则是重中之重,因为所有的数据都存放在数据库中。MySQL在5.7版本之前对于安全问题的确考虑并不充分,导致存在比较大的隐患,比如下面的这些问题,可能有些小伙伴知道,有些却还不知道:

  • MySQL数据库默认安装的用户密码为空
  • 所有用户拥有对于MySQL默认安装test数据库的访问权限(即使没有授予权限)

[......]

阅读全文

互联网全站HTTPS的时代已经到来

前言

       我目前正在从事HTTPS方面的性能优化工作。在HTTPS项目的开展过程中明显感觉到目前国内互联网对HTTPS并不是很重视,其实也就是对用户隐私和网络安全不重视。本文从保护用户隐私的角度出发,简单描述现在存在的用户隐私泄露和流量劫持现象,然后进一步说明为什么HTTPS能够保护用户安全以及 HTTPS使用过程中需要注意的地方。[......]

阅读全文

AES加密时抛出Illegal key size or default parameters

使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters

Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。文件位于${java_home}/jre/lib/security

这种限制是因为美国对软件出口的控制。[......]

阅读全文

Java加密和数字签名编程快速入门

本文主要谈一下密码学中的加密和数字签名,以及其在java中如何进行使用。对密码学有兴趣的伙伴,推荐看Bruce Schneier的著作:Applied Crypotography。在jdk1.5的发行版本中安全性方面有了很大的改进,也提供了对RSA算法的直接支持,现在我们从实例入手解决问题(本文仅是作为简单介绍):[......]

阅读全文

如何安全的存储用户的密码

大多数的web开发者都会遇到设计用户账号系统的需求。账号系统最重要的一个方面就是如何保护用户的密码。一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害。如果你还在存储用户密码的MD5,那可真的有点弱了。赶紧来看看这篇文章吧。[......]

阅读全文

关于存储用户密码的思考,bcrypt和PBKDF2算法

首先,像国内一些网站,比如sina这样的网站,zf要求要掌握用户密码,虽然也是加密的,但是是可逆加密。只要有需要,反解你的密码只是点一下鼠标的事儿。所以建议你的密码分级,对sina这种网站,不要使用高等级的密码。

但如果我们为了对用户负责,用户密码采用不可逆算法的时候,我们就要考虑一下如何对用户密码进行加密。那么仅仅是使用不可逆算法就行了吗?还不是,在硬件飞速发展的今天,尤其是GPU运算能力超CPU 10-20倍甚至更多,使得暴力破解的时间大大缩短。那么为了使得暴力破解变得几乎不可能,我们就要使用一些不支持GPU加速破解的算法。这里所说的算法,实际上也是各种加密的hash方式。

目前常见的不可逆加密算法有以下几种:[......]

阅读全文