栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:从applet修补AES256的客户端安全策略

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:从applet修补AES256的客户端安全策略

编辑:这是此问题的更新答案:在部署应用程序时如何避免安装“无限强度”JCE策略文件?


只需使用几行反射即可禁用密钥大小限制。我们在程序中使用此方法,该程序需要互操作性才能访问256位密码。

private static void removeCryptographyRestrictions() {    if (!isRestrictedCryptography()) {        return;    }    try {        java.lang.reflect.Field isRestricted;        try { final Class<?> c = Class.forName("javax.crypto.JceSecurity"); isRestricted = c.getDeclaredField("isRestricted");        } catch (final ClassNotFoundException e) { try {     // Java 6 has obfuscated JCE classes     final Class<?> c = Class.forName("javax.crypto.SunJCE_b");     isRestricted = c.getDeclaredField("g"); } catch (final ClassNotFoundException e2) {     throw e; }        }        isRestricted.setAccessible(true);        isRestricted.set(null, false);    } catch (final Throwable e) {        logger.log(Level.WARNING,     "Failed to remove cryptography restrictions", e);    }}private static boolean isRestrictedCryptography() {    return "Java(TM) SE Runtime Environment" .equals(System.getProperty("java.runtime.name"));}

但是,我们的程序不是applet,并且我不确定applet是否可以访问反射API。

关于合法性的问题也仍然存在。有这个限制的原因。如果您担心,请咨询律师。

如果可能,请尝试将其保留为128位密钥。即使考虑摩尔定律,打破128位AES也会花费数十亿亿年。较长的密钥在现实世界中无济于事-
尤其是当密钥是从密码派生而来的时,密码无论如何都没有接近256位的熵。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号