当前位置: 首页 > news >正文

南宁手机建站公司新加坡网站后缀

南宁手机建站公司,新加坡网站后缀,网页设计与制作心得体会1000,锦州网站设计在java中用aes256进行加密#xff0c;但是发现java里面不能使用PKCS7Padding#xff0c;而java中自带的是PKCS5Padding填充#xff0c;那解决办法是#xff0c;通过BouncyCastle组件来让java里面支持PKCS7Padding填充。 説辣么多不如上代码#xff1a; public class AESUt…在java中用aes256进行加密但是发现java里面不能使用PKCS7Padding而java中自带的是PKCS5Padding填充那解决办法是通过BouncyCastle组件来让java里面支持PKCS7Padding填充。 説辣么多不如上代码 public class AESUtil { /** * Encodes a String in AES-256 with a given key * * param context * param password * param text * return String Base64 and AES encoded String */ public static String encode(String keyString, String stringToEncode) throws NullPointerException { if (keyString.length() 0 || keyString null) { throw new NullPointerException(Please give Password); } if (stringToEncode.length() 0 || stringToEncode null) { throw new NullPointerException(Please give text); } try { SecretKeySpec skeySpec getKey(keyString); byte[] clearText stringToEncode.getBytes(UTF8); // IMPORTANT TO GET SAME RESULTS ON iOS and ANDROID final byte[] iv new byte[16]; Arrays.fill(iv, (byte) 0x00); IvParameterSpec ivParameterSpec new IvParameterSpec(iv); /** * 这个地方调用BouncyCastleProvider *让java支持PKCS7Padding */ Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); // Cipher is not thread safe Cipher cipher Cipher.getInstance(AES/CBC/PKCS7Padding); cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivParameterSpec); String encrypedValue Base64.encodeToString(cipher.doFinal(clearText), Base64.DEFAULT); // Log.d(jacek, Encrypted: stringToEncode - encrypedValue); return encrypedValue; } catch (InvalidKeyException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return ; } /** * Decodes a String using AES-256 and Base64 * * param context * param password * param text * return desoded String */ public static String decode(String password, String text) throws NullPointerException { if (password.length() 0 || password null) { throw new NullPointerException(Please give Password); } if (text.length() 0 || text null) { throw new NullPointerException(Please give text); } try { SecretKey key getKey(password); // IMPORTANT TO GET SAME RESULTS ON iOS and ANDROID final byte[] iv new byte[16]; Arrays.fill(iv, (byte) 0x00); IvParameterSpec ivParameterSpec new IvParameterSpec(iv); byte[] encrypedPwdBytes Base64.decode(text, Base64.DEFAULT); // cipher is not thread safe /** * 这个地方调用BouncyCastleProvider *让java支持PKCS7Padding */ Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); Cipher cipher Cipher.getInstance(AES/CBC/PKCS7Padding); cipher.init(Cipher.DECRYPT_MODE, key, ivParameterSpec); byte[] decrypedValueBytes (cipher.doFinal(encrypedPwdBytes)); String decrypedValue new String(decrypedValueBytes); //Log.d(LOG_TAG, Decrypted: text - decrypedValue); return decrypedValue; } catch (InvalidKeyException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return ; } /** * Generates a SecretKeySpec for given password * * param password * return SecretKeySpec * throws UnsupportedEncodingException */ private static SecretKeySpec getKey(String password) throws UnsupportedEncodingException { // You can change it to 128 if you wish int keyLength 256; byte[] keyBytes new byte[keyLength / 8]; // explicitly fill with zeros Arrays.fill(keyBytes, (byte) 0x0); // if password is shorter then key length, it will be zero-padded // to key length byte[] passwordBytes password.getBytes(UTF-8); int length passwordBytes.length keyBytes.length ? passwordBytes.length : keyBytes.length; System.arraycopy(passwordBytes, 0, keyBytes, 0, length); SecretKeySpec key new SecretKeySpec(keyBytes, AES); return key; } public static void main(String args[]) { long startTime System.currentTimeMillis(); String encodeStr AESUtil.encode(1234, 你要去哪儿test123); System.out.println(encoder:encodeStr); String decodeStr AESUtil.decode(1234,encodeStr); System.out.println(decoder:decodeStr); } } BouncyCastle组件相关jar包bcprov-jdk15on-152.jar的下载地址http://www.bouncycastle.org  默认 Java 中仅支持 128 位密钥当使用 256 位密钥的时候会报告密钥长度错误 你需要下载一个支持更长密钥的包。这个包叫做 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 可以从这里下载下载地址http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html。下好了zip文件以后把里面的两个jar包(local_policy.jar,US_export_policy.jar)替换掉jdk的security文件夹中相应的jar包就OK啦。   但是我确实遇到一个比较奇怪的问题我在android上面调用PKCS7Padding 是没有问题的但是在java写的服务端就有问题了。不知道为什么我用的jdk都是1.8.0的jdk。还请各位如果有遇到相同情况的可以解答一下。
http://www.pierceye.com/news/324726/

相关文章:

  • 如何在建设部网站查询获奖情况如何申请电商网站
  • jsp网站访问万维网网站幻灯
  • 南通住房和城乡建设部网站首页安徽公司网站建设
  • 建筑论坛网站修改WordPress文章发布页面
  • 网站代备案系统seo优化服务是什么意思
  • 专门做选择题的网站一个网站seo做哪些工作
  • wordpress 多站点 拷贝中国建设银行春招网站
  • 门户营销型网站wordpress代码执行
  • 保山市建设厅网站做建筑机械网站那个网站好
  • 广告位网站建设国际人才网中山招聘网
  • 南昌市城市建设档案馆网站一个网站做无限关键词
  • wordpress特别卡 iis东莞推广优化公司
  • 做网站收入怎样开放平台登录
  • 外贸网站运营推广微信运营商
  • 国外做储物柜的网站做亚马逊网站一般发什么快递
  • 仿古建筑公司网站廊坊网站建设公司
  • 在线动画手机网站模板下载学软件开发需要什么基础
  • 北京的网站建设收费标准推广产品的方法和步骤
  • 北京市专业网站制作企业合肥做网络推广的公司
  • 网站建设php教程视频手机商城网站设计
  • 重庆网站建设公司哪个最好老家装设计网
  • 外贸网站建设产品crm公司
  • 网站做查赚钱网站建设捌金手指花总四
  • 有没有做链接的网站彩票型网站建设
  • 15年做哪个网站能致富网站界面设计的相关指南
  • 网站报价功能清单德州做网站最好的公司
  • 网站开发设计图片搭建论坛需要多少钱
  • 网站建设价格明细做一套二级域名网站怎么做
  • 网站建设 发展方向手机开发人员选项怎么打开
  • 深圳网站建设深圳网络邢台市政建设集团股份有限公司网站