{"id":21993006,"url":"https://github.com/homeant/data-shield","last_synced_at":"2025-04-30T14:25:18.713Z","repository":{"id":41011939,"uuid":"259067590","full_name":"homeant/data-shield","owner":"homeant","description":"mybatis data encryption","archived":false,"fork":false,"pushed_at":"2023-05-09T18:40:28.000Z","size":134,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-07-26T21:57:56.376Z","etag":null,"topics":["data-security","decode","encrypt","mybatis"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/homeant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-26T15:39:01.000Z","updated_at":"2023-07-26T21:57:56.377Z","dependencies_parsed_at":"2022-09-26T21:41:14.211Z","dependency_job_id":null,"html_url":"https://github.com/homeant/data-shield","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homeant%2Fdata-shield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homeant%2Fdata-shield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homeant%2Fdata-shield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homeant%2Fdata-shield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/homeant","download_url":"https://codeload.github.com/homeant/data-shield/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227206273,"owners_count":17747734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-security","decode","encrypt","mybatis"],"created_at":"2024-11-29T20:15:47.858Z","updated_at":"2024-11-29T20:15:48.358Z","avatar_url":"https://github.com/homeant.png","language":"Java","readme":"# data-shield\n\n\u003e 针对mybatis对业务敏感数据进行加密，为企业数据保驾护航\n\n\n```bash\n2021-04-03 16:23:16.604 DEBUG 3020 --- [           main] c.g.h.d.shield.mapper.UserMapper.insert  : ==\u003e  Preparing: insert into t_user (username,password) values ( ?, ?) \n2021-04-03 16:23:16.629 DEBUG 3020 --- [           main] c.g.h.d.shield.mapper.UserMapper.insert  : ==\u003e Parameters: tom(String), L0wfhbKDAELRnj03GtjKoQ==(String)\n2021-04-03 16:23:16.651 DEBUG 3020 --- [           main] c.g.h.d.shield.mapper.UserMapper.insert  : \u003c==    Updates: 1\n2021-04-03 16:23:16.675 DEBUG 3020 --- [           main] c.g.h.d.s.mapper.UserMapper.selectOn     : ==\u003e  Preparing: select id,username,password from t_user where id = ? \n2021-04-03 16:23:16.675 DEBUG 3020 --- [           main] c.g.h.d.s.mapper.UserMapper.selectOn     : ==\u003e Parameters: 75(Integer)\n2021-04-03 16:23:23.313 DEBUG 3020 --- [           main] c.g.h.d.s.mapper.UserMapper.selectOn     : \u003c==      Total: 1\n2021-04-03 16:23:26.166 DEBUG 3020 --- [           main] com.github.homeant.data.shield.DataTest  : user:User(id=75, username=tom, password=p@ssw0rd1234567)\n```\n\n```bash\nmysql\u003e select * from t_user;\n+----+----------+--------------------------+\n| id | username | password                 |\n+----+----------+--------------------------+\n| 74 | tom      | L0wfhbKDAELRnj03GtjKoQ== |\n| 75 | tom      | L0wfhbKDAELRnj03GtjKoQ== |\n+----+----------+--------------------------+\n2 rows in set (0.03 sec)\n```\n\n## pom.xml配置\n\n\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003ecom.github.homeant\u003c/groupId\u003e\n   \u003cartifactId\u003edata-shield\u003c/artifactId\u003e\n   \u003cversion\u003e1.0-BATE\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## yaml配置\n\n\n```yaml\napp:\n  data:\n    shield:\n      enable: true\n      strategy: aes #支持AES/DES模式 \n      key: AD42F6697B035B7580E4FEF93BE20BAD\n```\n\n## 业务字段配置\n\n为需要处理的业务字段添加@TableField注解,只支持String类型\n\nencrypt: 修改过程是否需要加密,默认为false\n\ndecode: 查询过程是否需要解密,默认为false\n\nasserts: decode为true时，针对某些数据(历史数据)提供断言,默认值DefaultAssert.class(encrypt=true,decode=true)\n\n```java\n@Data\npublic class User {\n    private Integer id;\n\n    private String username;\n\n    @TableField(encrypt = true,decode = true,assertion=Base64Assert.class)\n    private String phone;\n}\n```\n\n## 更新日志\n\n2020-05-17\n\n1. `data-shield`问世，针对`mybatis`对业务敏感数据进行加密，包含`query`、`update`操作；加密模式有`AES`和`DES`\n2. 新增`DataShieldService`可单独对业务对象进行加解密\n3. 新增`DataShieldHelper`可对查询结果进行打码操作\n\n2021-04-03 \n\n1. 添加`mybatis`的`Cursor`查询\n2. 修改`query`模式不污染原始查询对象\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomeant%2Fdata-shield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhomeant%2Fdata-shield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomeant%2Fdata-shield/lists"}