重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用Java实现AES需要依赖Java加密扩展TheJavaCryptographyExtension,简称JCE的支持主要是在javax下面的一些包。根据描述需要使用的算法为AESCBCNoPadding。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的丹寨网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
需要依赖Java加密扩展的支持才能实现。用Java实现AES需要依赖Java加密扩展TheJavaCryptographyExtension,简称JCE的支持主要是在javax下面的一些包。根据描述需要使用的算法为AESCBCNoPadding。
http://blog.chen77com/2015/10/13/Java%E4%B8%8EC-AES%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86/#more 不知道适合你用吗,我以前是用这种方式实现的。
中文用于网络传输要先用 java点虐 .URLEncoder 的encode方法加密再调用你自己的加密方法。
所以加密函数需要两个参数,一个是要加密的 明文,然后是密钥128位,都是字符型。password在函数里被换成byte【】型,总之就是变成适合java的aes加密函数的参数类型。
1、通常比较简单的加密方法就是你把文本文件加载读取以后,得到的每一个char加上一个固定的整数,然后再保存,这样内容就看不懂了。再读取以后,把每一个char减去固定的整数,然后保存,就还原回来了。
2、加密解密并非java才有的,所有编程语言都有加密和解密。目前的加密解密主要可分为以下2大类:对称秘钥加密:如DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法等。
3、java的扩展包很好的实现了你需要的功能。这个包在java.security.*;当然了还有很多好的加密方法,在sun的第三方jar包中有。目前密码加密使用用的是MD5加密,这个是单向加密,不可以解密。
4、它们都用factory方法来创建类的例程,然后把实际的加密函数委托给提供者指定的底层引擎,引擎中为类提供了服务提供者接口在Java中实现数据的加密/解密,是使用其内置的JCE(Java加密扩展)来实现的。
5、我以前上密码学课写过一个DES加解密的程序,是自己实现的,不是通过调用java库函数,代码有点长,带有用户界面。
6、URLDecoder和URLEncoder应该是不行的,程序员轻易的就能解码修改参数后重新编码。比较合适的就是RSA加密了,只要两个服务器共用一个密钥,一个加密,另一个收到后再用密钥解密就行。
通常比较简单的加密方法就是你把文本文件加载读取以后,得到的每一个char加上一个固定的整数,然后再保存,这样内容就看不懂了。再读取以后,把每一个char减去固定的整数,然后保存,就还原回来了。
你先把java的一个字符比如12345,用已知的key加密,然后同样在C#里用同样的数据加密,比较一下加密的结果是否一样,如果一样再说解密的事。
Solaris下的系统,有一个用C做的加密工具,调用Sunwcry的des(1)对文件进行加密,然后在java中对文件进行解密。java中用的是标准的DES/CBC/NoPadding算法,可是解密后发现开头有8byte的数据出错了,请高人指点一下。
安装和配置提供器,可将包含提供器的ZIP和JAR文件放在CLASSPATH下,再编辑Java安全属性文件来设置定义一个提供器。
Cipher.getInstance(DES/CBC/PKCS5Padding);里面的值要设置为同样的,这样才能通过密钥解密。