对象中有某些字段需要处理的思考:例如,要对一个类中的银行账号进行加密保存, 前六后四的保存。

来源:互联网 发布:工信部域名备案查询 编辑:程序博客网 时间:2024/06/05 12:07

      这些:  一旦加密保存之后, 在展示层(controller)只要有方法需要获取字段的时候, 就要解密。 或者是在插入数据时要加密处理很麻烦, 这个时候我们可以在业层(service)对这个字段进行处理加密 解密, 就很方便了。而不用再每次业务需求时进行加解密。


例如:




 这个是在Controller中对密码进行加密。 然后我们把这个加密移到service层。

        @Autowiredprivate  CFSHostSecurityModuleService cfsSecurityService;public void save(ReconBankOrderHandleDto dto) {reconBankOrderHandleDao.save(encryptMessage(ReconBankOrderHandleUtil.toEo(dto)));}public void update(ReconBankOrderHandleDto dto) {reconBankOrderHandleDao.update(encryptMessage(ReconBankOrderHandleUtil.toEo(dto)));}public List<ReconBankOrderHandleDto> query(ReconBankOrderHandleForQuery query) {if (query == null || query.getPage() == null) {return ReconBankOrderHandleUtil.toDtos(decryptMessages(reconBankOrderHandleDao.query(query)));}query.getPage().setTotalRecords(reconBankOrderHandleDao.count(query));return ReconBankOrderHandleUtil.toDtos(decryptMessages(reconBankOrderHandleDao.query(query,new RowBounds(query.getPage().getPageCurrent(), query.getPage().getPageSize()))));}@Overridepublic List<ReconBankOrderHandleDto> querySumBankOrderForFunds(ReconBankOrderHandleForQuery query) {  return ReconBankOrderHandleUtil.toDtos(decryptMessages(reconBankOrderHandleDao.querySumBankOrderForFunds(query))); }/** * 加密卡号 * 出账银行号 * @param ReconBankOrderHandleEo * @return */private ReconBankOrderHandleEo encryptMessage(ReconBankOrderHandleEo reconBankOrderHandleEo){String bankAcctId = cfsSecurityService.encryptMessage(reconBankOrderHandleEo.getBankAcctId());String accountBank=cfsSecurityService.encryptMessage(reconBankOrderHandleEo.getAccountBank());reconBankOrderHandleEo.setBankAcctId(bankAcctId);reconBankOrderHandleEo.setAccountBank(accountBank);return reconBankOrderHandleEo;}/** * 加密卡号和出账银行号 LiST * @param list * @return */private List<ReconBankOrderHandleEo> encryptMessages(List<ReconBankOrderHandleEo> list){for (ReconBankOrderHandleEo eo : list) {String bankAcctId = cfsSecurityService.encryptMessage(eo.getBankAcctId());String accountBank=cfsSecurityService.encryptMessage(eo.getAccountBank());eo.setBankAcctId(bankAcctId);eo.setAccountBank(accountBank);}return list;}/** * 解密卡号和出账银行号 LiST * @param list * @return */private List<ReconBankOrderHandleEo> decryptMessages(List<ReconBankOrderHandleEo> list){for (ReconBankOrderHandleEo eo : list) {String bankAcctId = cfsSecurityService.decryptMessage(eo.getBankAcctId());String accountBank=cfsSecurityService.decryptMessage(eo.getAccountBank());eo.setBankAcctId(bankAcctId);eo.setAccountBank(accountBank);}return list;}}



















0 0
原创粉丝点击