`
peterwanghao
  • 浏览: 123482 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache Shiro 加密

阅读更多

加密是使用密钥对数据进行可逆转换的加密算法。我们使用其保证数据的安全,尤其是传输或存储数据时,以及在数据容易被窥探的时候。

如果你曾经用过JDKCryptographyAPI,特别是javax.crypto.Cipher类,你会知道它是一头需要驯服的极其复杂的野兽。对于初学者,每个可能的加密配置总是由一个javax.crypto.Cipher实例表示。必须进行公钥/私钥加密?你得用Cipher。需要为流操作使用块加密器(BlockCipher)?你得用Cipher。需要创建一个AES256Cipher来保护数据?你得用Cipher

那么如何创建你需要的Cipher实例?您得创建一个非直观、标记分隔的加密选项字符串,它被称为“转换字符串(transformationstring)”,把该字符串传给Cipher.getInstance静态工厂方法。这种字符串方式的cipher选项,并没有类型安全以确保你正在用有效的选项。这也暗示没有JavaDoc帮你了解相关选项。并且,如果字符串格式组织不正确,你还需要进一步处理CheckedException,即便你知道配置是正确的。如你所见,使用JDKCipher是一项相当繁重的任务。很久以前,这些技术曾经是JavaAPI的标准,但是世事变迁,我们需要一种更简单的方法。

Shiro通过引入它的CipherServiceAPI试图简化加密密码的整个概念。CipherService是多数开发者在保护数据时梦寐以求的东西:简单、无状态、线程安全的API,能够在一次方法调用中对整个数据进行加密或解密。你所需要做的只是提供你的密钥,就可根据需要加密或解密。如下列所示中,使用256AES加密:

AesCipherServicecipherService=newAesCipherService();

cipherService.setKeySize(256);

//创建一个测试密钥:

byte[]testKey=cipherService.generateNewKey();

//加密文件的字节:

byte[]encrypted=cipherService.encrypt(fileBytes,testKey);

较之JDKCipherAPIShiro的示例要简单的多:

l你可以直接实例化一个CipherService-没有奇怪或让人混乱的工厂方法;

lCipher配置选项可以表示成JavaBean-兼容的gettersetter方法-没有了奇怪和难以理解的“转换字符串”;

l加密和解密在单个方法调用中完成;

l没有强加的CheckedException。如果愿意,可以捕获ShiroCryptoException

ShiroCipherServiceAPI还有其他好处,如同时支持基于字节数组的加密/解密(称为“块”操作)和基于流的加密/解密(如加密音频或视频)。

不必再忍受JavaCryptography带来的痛苦。ShiroCryptography支持就是为了减少你在确保数据安全上付出的努力。

Shiro中加密功能的特点:

面向对象的层次结构—与JCE不同,Shiro的密码功能遵循面向对象的类层次结构:象AbstractSymmetricCipherServiceDefaultBlockCipherServiceAesCipherService等等,这使您可以很容易地替换掉现有的类或是扩展其功能。

只需实例化一个类—与JCE的混乱使用字符串标记参数的工厂方法不同,使用Shiro加密是非常容易的,只需实例化一个类。配置必要的JavaBean的属性,并根据需要使用。例如,新的AesCipherService()。

更安全的默认设置JCE默认情况下并不会自动实现更安全的选择。而Shiro会提供更安全的选择,以确保您的数据是安全的。因为默认情况下,它会自动启用以帮助您防止意外的安全漏洞。

分享到:
评论

相关推荐

    Apache Shiro中文开发文档.pdf

    Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架...

    SpringBoot + Apache Shiro1.9.1 最新版本详细教程,基于RBAC角色访问、安全管理框架、用户角色权限

    springboot、shiro、mybatis、mybatis plus、mysql、thymeleaf、 3、实现功能:登陆认证、密码加密、权限授权等 4、优点:快速上手、全面支持验证、授权、加密和会话、灵活自定义设计、支持web环境、可以无缝集成...

    Apache Shiro核心jar包:shiro-core-1.3.2

    Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

    让Apache Shiro保护你的应用

    Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业...

    Apache_Shiro参考手册中文版.zip

    Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应 ...

    apache shiro 开发文档

    Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密

    Apache shiro的简单介绍与使用教程(与spring整合使用)

     Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密。现在,使用Apache Shiro的人越来越多,因为它相当简单,相比比Spring Security,Shiro可能没有Spring ...

    Apache Shiro安全框架-其他

    Apache Shiro(发音为“shee-roh”,日语为“castle”)是一种功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理,可用于保护任何应用程序的安全-从命令行应用程序,移动应用程序到最大的Web...

    ShiroSamples:Apache Shiro示例

    Apache Shiro是一个强大而灵活的开源安全框架,可以简明地处理身份验证,授权,企业会话管理和加密。 Apache Shiro最初的目标是易于使用和理解。安全有时候会很复杂,甚至令人痛苦,但没必要。一个框架应该替换隐藏...

    Apache Shiro Padding Oracle漏洞可导致远程命令执行漏洞解决

    Apache Shiro < 1.4.2 版本中cookie值rememberMe通过AES-128-CBC模式加密,容易受到Padding Oracle攻击。攻击者可以通过以下步骤完成攻击: 1、登录Shiro网站,获取持久化cookie中rememberMe字段的值;

    apache-shiro-1-2-x-reference

    Apache Shiro是一个功能强大、灵活的开放式安全框架,干净利落地处理身份验证、授权、企业会话管理和加密。 Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。 【apache-shiro-1-2-x-...

    Apache Shiro是Java的一个安全框架。帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。

    Apache Shiro是Java的一个安全框架。帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。

    Apache-Shiro-中文参考文档.docx

    Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架...

    Shiro-EXP:Apache Shiro 反序列化漏洞检测与利用工具,一键注入内存马

    与项目相关文章首发于:Shiro exp使用手册Shiro rememberMe反序列化漏洞漏洞原理Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie,服务端对rememberMe的cookie值...

    Shiro 视频教程+源码+课件

    Apache Shiro 是目前使用率较高的一个 Java 安全框架。本视频基于 Shiro 的新版本 1.3.2 录制。内容涵盖 Shiro 认证、加密、授权、安全标签、安全注解、会话管理、缓存、Rememberme 等 JavaEE 企业级开发的核心技术...

    shiro 1.4.1.rar

    Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多...Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。这不就是我们想要的嘛,而且 Shiro 的 API 也是非常简单.

    Apache_Shiro

    Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应 ...

    基于经典技术组合Spring MVC、Apache Shiro、MyBatis、Bootstrap UI的java快速开发框架

    JeeSite是在Spring Framework基础上搭建的一个Java基础开发平台,以Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎。是JavaEE界的...

    Apache_Shiro开发文档及JAVA开发实例

    Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。这是一个JAVA开发实例及开发文档。

Global site tag (gtag.js) - Google Analytics