U盾管理

20240109-yw
yuanwei 11 months ago
parent b73f9521ae
commit dac572e817

@ -0,0 +1,140 @@
package com.glxp.api.controller.ud;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.anno.AnncmntDevEntity;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.ud.UdInfoEntity;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import com.glxp.api.req.anno.AnncmntDevEntityRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.req.ud.UdInfoEntityRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.anno.AnncmntDevService;
import com.glxp.api.service.ud.UdInfoService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
/**
*
*
*/
@ApiIgnore
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ud/info")
public class UdInfoController extends BaseController {
private final UdInfoService udInfoService;
@GetMapping("/list")
public BaseResponse list(UdInfoEntityRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
int offset = (request.getPage() - 1) * request.getLimit();
Page<UdInfoEntity> pages = PageHelper.offsetPage(offset, request.getLimit());
List<UdInfoEntity> list = udInfoService.list(getQueryWrapper(request));
PageSimpleResponse<UdInfoEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pages.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@PostMapping("/save")
@Log(title = "U盾管理", businessType = BusinessType.INSERT)
public BaseResponse save(@RequestBody UdInfoEntity entity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
AuthAdmin authAdmin = getUser();
entity.setStatus("2");
entity.setCheckStatus("2");
entity.setCreateTime(new Date());
entity.setCreateUser(authAdmin.getId()+"");
entity.setUpdateTime(new Date());
entity.setUpdateUser( authAdmin.getId()+"");
boolean b = udInfoService.save(entity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("添加成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/edit")
@Log(title = "U盾管理", businessType = BusinessType.UPDATE)
public BaseResponse edit(@RequestBody @Valid UdInfoEntity entity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (entity.getId() == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
UdInfoEntity originEntity = udInfoService.getById(entity.getId());
if (originEntity == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
AuthAdmin authAdmin = getUser();
entity.setUpdateTime(new Date());
entity.setUpdateUser( authAdmin.getId()+"");
boolean b = udInfoService.updateById(entity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/delete")
@Log(title = "U盾管理", businessType = BusinessType.DELETE)
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
if (StringUtils.isEmpty(deleteRequest.getId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean b = udInfoService.removeById(deleteRequest.getId());
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success();
}
public static QueryWrapper<UdInfoEntity> getQueryWrapper(UdInfoEntityRequest request) {
UdInfoEntity entity = new UdInfoEntity();
BeanCopyUtils.copy(request, entity);
QueryWrapper queryWrapper = new QueryWrapper(entity);
return queryWrapper;
}
}

@ -0,0 +1,201 @@
package com.glxp.api.controller.ud;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.Constant;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.anno.AnncmntDevEntity;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.req.ud.UdProducePlanEntityRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.ud.UdProducePlanService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.util.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
*
*/
@ApiIgnore
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/ud/plan")
public class UdProducePlanController extends BaseController {
private final UdProducePlanService udProducePlanService;
@Resource
private AuthAdminService authAdminService;
@Resource
GennerOrderUtils gennerOrderUtils;
@GetMapping("/list")
public BaseResponse list(UdProducePlanEntityRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
Map<Long,String> userMap = authAdminService.getEmployeeNameMap();
int offset = (request.getPage() - 1) * request.getLimit();
Page<UdProducePlanEntity> pages = PageHelper.offsetPage(offset, request.getLimit());
List<UdProducePlanEntity> list = udProducePlanService.list(getQueryWrapper(request));
for(UdProducePlanEntity entity:list){
entity.setCreateUserName(StringUtils.isNotEmpty(entity.getCreateUser())?userMap.get(Long.parseLong(entity.getCreateUser())):"");
entity.setAuditUserName(StringUtils.isNotEmpty(entity.getAuditUser())?userMap.get(Long.parseLong(entity.getAuditUser())):"");
}
PageSimpleResponse<UdProducePlanEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pages.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@PostMapping("/save")
@Log(title = "U盾制作计划管理", businessType = BusinessType.INSERT)
public BaseResponse save(@RequestBody UdProducePlanEntity entity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String orderNo = gennerOrderUtils.getUDNo();
AuthAdmin authAdmin = getUser();
entity.setRealityNumber(0);
entity.setStatus("2");
entity.setProduceNo(orderNo);
entity.setCreateTime(new Date());
entity.setCreateUser(authAdmin.getId()+"");
entity.setUpdateTime(new Date());
entity.setUpdateUser( authAdmin.getId()+"");
boolean b = udProducePlanService.save(entity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("添加成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/edit")
@Log(title = "U盾制作计划管理", businessType = BusinessType.UPDATE)
public BaseResponse edit(@RequestBody @Valid UdProducePlanEntity entity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (entity.getId() == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
UdProducePlanEntity originEntity = udProducePlanService.getById(entity.getId());
if (originEntity == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
AuthAdmin authAdmin = getUser();
entity.setUpdateTime(new Date());
entity.setUpdateUser( authAdmin.getId()+"");
boolean b = udProducePlanService.updateById(entity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/updateStatus")
@Log(title = "U盾制作计划管理", businessType = BusinessType.DELETE)
public BaseResponse updateStatus(@RequestBody UdProducePlanEntity entity,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (entity.getId() == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
UdProducePlanEntity originEntity = udProducePlanService.getById(entity.getId());
if (originEntity == null) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
AuthAdmin authAdmin = getUser();
originEntity.setUpdateTime(new Date());
originEntity.setUpdateUser( authAdmin.getId()+"");
originEntity.setStatus("1");
boolean b = udProducePlanService.updateById(originEntity);
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success("修改成功!");
}
@AuthRuleAnnotation("")
@PostMapping("/delete")
@Log(title = "U盾制作计划管理", businessType = BusinessType.DELETE)
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
if (StringUtils.isEmpty(deleteRequest.getId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
boolean b = udProducePlanService.removeById(deleteRequest.getId());
if (!b) {
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
}
return ResultVOUtils.success();
}
public static QueryWrapper<UdProducePlanEntity> getQueryWrapper(UdProducePlanEntityRequest request) {
UdProducePlanEntity entity = new UdProducePlanEntity();
BeanCopyUtils.copy(request, entity);
QueryWrapper queryWrapper = new QueryWrapper(entity);
if(StringUtils.isNotBlank(request.getEndTime())){
queryWrapper.le("produceTime",request.getEndTime());
}
if(StringUtils.isNotBlank(request.getStartTime())){
queryWrapper.ge("produceTime",request.getStartTime());
}
if(StringUtils.isNotBlank(request.getEndAduditTime())){
queryWrapper.le("auditTime",request.getEndAduditTime());
}
if(StringUtils.isNotBlank(request.getStartAduditTime())){
queryWrapper.ge("auditTime",request.getStartAduditTime());
}
return queryWrapper;
}
}

@ -0,0 +1,10 @@
package com.glxp.api.dao.ud;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.ud.UdInfoEntity;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UdInfoMapper extends BaseMapper<UdInfoEntity> {
}

@ -0,0 +1,10 @@
package com.glxp.api.dao.ud;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.anno.AnncmntDevEntity;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UdProducePlanMapper extends BaseMapper<UdProducePlanEntity> {
}

@ -0,0 +1,115 @@
package com.glxp.api.entity.ud;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "ud_info")
public class UdInfoEntity implements Serializable {
@TableId(value = "id")
private Integer id;
/**
* id
*/
@TableField(value = "companyId")
private Integer companyId;
/**
* id
*/
@TableField(value = "producePlanId")
private String producePlanId;
/**
* UID
*/
@TableField(value = "uniqueId")
private String uniqueId;
/**
* U
*/
@TableField(value = "serialNumber")
private String serialNumber;
/**
*
*/
@TableField(value = "ciphertext")
private String ciphertext;
/**
*
*/
@TableField(value = "allocateTime")
private Date allocateTime;
/**
*
*/
@TableField(value = "allocateStatus")
private String allocateStatus;
/**
*
*/
@TableField(value = "checkTime")
private Date checkTime;
/**
*
*/
@TableField(value = "checkStatus")
private String checkStatus;
/**
*
*/
@TableField(value = "status")
private String status;
/**
*
*/
@TableField(value = "`createUser`")
private String createUser;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
private String updateUser;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
private String remark;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,121 @@
package com.glxp.api.entity.ud;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "ud_produce_plan")
public class UdProducePlanEntity implements Serializable {
@TableId(value = "id")
private Integer id;
/**
*
*/
@TableField(value = "produceNo")
private String produceNo;
/**
*
*/
@TableField(value = "produceTime")
@JsonFormat( pattern = "yyyy-MM-dd")
private Date produceTime;
/**
*
*/
@TableField(value = "planNumber")
private Integer planNumber;
/**
*
*/
@TableField(value = "realityNumber")
private Integer realityNumber;
/**
*
*/
@TableField(value = "auditTime")
private Date auditTime;
/**
*
*/
@TableField(value = "auditUser")
private String auditUser;
/**
*
*/
@TableField(exist = false)
private String auditUserName;
/**
*
*/
@TableField(value = "auditStatus")
private String auditStatus;
/**
* U
*/
@TableField(value = "manufacturer")
private String manufacturer;
/**
*
*/
@TableField(value = "status")
private String status;
/**
*
*/
@TableField(value = "createUser")
private String createUser;
/**
*
*/
@TableField(exist = false)
private String createUserName;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
private String updateUser;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
private String remark;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,28 @@
package com.glxp.api.req.ud;
import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class UdInfoEntityRequest extends ListPageRequest {
/**
* id
*/
@TableField(value = "producePlanId")
private String producePlanId;
/**
* UID
*/
@TableField(value = "uniqueId")
private String uniqueId;
/**
* U
*/
@TableField(value = "serialNumber")
private String serialNumber;
}

@ -0,0 +1,34 @@
package com.glxp.api.req.ud;
import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class UdProducePlanEntityRequest extends ListPageRequest {
/**
*
*/
private String status;
/**
* startTime
*/
private String startTime;
/**
* endTime
*/
private String endTime;
/**
* startAduditTime
*/
private String startAduditTime;
/**
* endAduditTime
*/
private String endAduditTime;
}

@ -8,6 +8,7 @@ import com.glxp.api.req.auth.FilterNoSelectUserRequest;
import com.glxp.api.req.auth.UpdateUserRequset;
import java.util.List;
import java.util.Map;
public interface AuthAdminService extends IService<AuthAdmin> {
@ -45,4 +46,6 @@ public interface AuthAdminService extends IService<AuthAdmin> {
void insertUserAuth(Long userId, List<Long> roleIds);
Map<Long,String> getEmployeeNameMap();
}

@ -19,10 +19,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Transactional(rollbackFor = Exception.class)
@ -177,6 +175,14 @@ public class AuthAdminServiceImpl extends ServiceImpl<AuthAdminDao, AuthAdmin> i
insertUserRole(userId, roleIds);
}
@Override
public Map<Long, String> getEmployeeNameMap() {
List<AuthAdmin> list = authAdminDao.listAdminPage(new FilterAuthUserRequest());
return list.stream().collect(Collectors.toMap(AuthAdmin::getId, AuthAdmin::getEmployeeName));
}
public void insertUserRole(Long userId, List<Long> roleIds) {
if (ArrayUtil.isNotEmpty(roleIds)) {

@ -0,0 +1,13 @@
package com.glxp.api.service.ud;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.anno.AnncmntDevMapper;
import com.glxp.api.dao.ud.UdInfoMapper;
import com.glxp.api.entity.anno.AnncmntDevEntity;
import com.glxp.api.entity.ud.UdInfoEntity;
import org.springframework.stereotype.Service;
@Service
public class UdInfoService extends ServiceImpl<UdInfoMapper, UdInfoEntity> {
}

@ -0,0 +1,13 @@
package com.glxp.api.service.ud;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.ud.UdInfoMapper;
import com.glxp.api.dao.ud.UdProducePlanMapper;
import com.glxp.api.entity.ud.UdInfoEntity;
import com.glxp.api.entity.ud.UdProducePlanEntity;
import org.springframework.stereotype.Service;
@Service
public class UdProducePlanService extends ServiceImpl<UdProducePlanMapper, UdProducePlanEntity> {
}

@ -130,6 +130,16 @@ public class GennerOrderUtils {
return orderNo;
}
/**
* UDcode
*
* @return
*/
public String getUDNo() {
String orderNo = createRecordOrderNo(new OrderNoTypeBean("UD", "yyyyMMdd"));
return orderNo;
}
/**
* @param orderNoTypeEnum:
* @Description redis( + )

@ -0,0 +1,312 @@
package com.glxp.api.util;
import cn.hutool.core.util.IdUtil;
public class SoftKey {
private String myhex(byte indata)
{
String outstring;
outstring=String.format("%X",indata);
if(outstring.length()<2)outstring="0"+outstring;
return outstring;
}
//若某字节为负数则需将其转成无符号正数
private long conver(byte temp){
long tempInt = (int)temp;
if(tempInt < 0){
tempInt += 256;
}
return tempInt;
}
//以下用于将16进制字符串转化为无符号长整型
private int HexToInt(String s)
{
String [] hexch = { "0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "A", "B", "C", "D", "E", "F"};
int i, j;
int r, n, k;
String ch;
k = 1; r = 0;
for (i = s.length(); i > 0; i--)
{
ch = s.substring(i - 1, i-1+1);
n = 0;
for (j = 0; j < 16; j++)
{
if (ch.compareToIgnoreCase(hexch[j]) ==0 )
{
n = j;
}
}
r += (n * k);
k *= 16;
}
return r;
}
public String StrEnc(String InString , String Key)//使用增强算法,加密字符串
{
byte [] b,outb;
byte []temp_b=InString.getBytes();
byte [] temp=new byte[8],outtemp=new byte[8];
int n,i,nlen,outlen;
String outstring;
nlen = temp_b.length;
nlen=nlen+1;
if( nlen < 8 )
outlen = 8;
else
outlen = nlen;
b=new byte[outlen];
outb=new byte[outlen];
for(n=0;n<nlen-1;n++)
{
b[n]=temp_b[n];
}
outb=b.clone();
for( n = 0; n<=outlen - 8 ;n=n+ 8)
{
for (i = 0; i < 8; i++) temp[i] = b[i + n];
EnCode(temp, outtemp, Key);
for( i = 0 ;i<8;i++) outb[i + n] = outtemp[i];
}
outstring = "";
for (n = 0 ;n<= outlen - 1;n++)
{
outstring = outstring +myhex(outb[n]) ;
}
return outstring;
}
public String StrDec(String InString , String Key)//使用增强算法,解密字符串
{
byte [] b,outb;
byte [] temp=new byte[8],outtemp=new byte[8];
int n,i,nlen,outlen;
String outstring,temp_string;
nlen = InString.length();
if( nlen < 16 ) outlen = 16;
outlen = nlen / 2;
b=new byte[outlen];
outb=new byte[outlen];
i = 0;
for (n = 1 ;n<= nlen ;n=n+2)
{
temp_string = InString.substring(n-1, n-1+2);
b[i] = (byte)HexToInt(temp_string);
i = i + 1;
}
outb=b.clone();
for( n = 0; n<=outlen - 8 ;n=n+ 8)
{
for (i = 0; i < 8; i++) temp[i] = b[i + n];
DeCode(temp, outtemp, Key);
for( i = 0 ;i<8;i++) outb[i + n] = outtemp[i];
}
outstring=new String(outb);
outstring=outstring.trim();
return outstring;
}
public void EnCode(byte[] inb, byte[] outb, String Key )
{
long cnDelta,y,z,a,b,c,d,temp_2;
long [] buf=new long[16];
int n,i,nlen;
long sum;
long temp,temp_1;
long mask=4294967295L;
//UInt32 temp, temp_1;
String temp_String ;
cnDelta = 2654435769L;
sum = 0;
nlen = Key.length();
i = 0;
for( n = 1 ;n<= nlen ;n=n+2)
{
temp_String =Key.substring(n-1, n-1+2);
buf[i] =HexToInt(temp_String);
i = i + 1;
}
a = 0 ; b = 0 ; c = 0 ; d = 0;
for(n = 0;n<=3;n++)
{
a = (buf[n] << (n * 8)) | a;
b = (buf[n + 4] << (n * 8)) | b;
c = (buf[n + 4 + 4] << (n * 8)) | c;
d = (buf[n + 4 + 4 + 4] << (n * 8)) | d;
}
y = 0;
z = 0;
for(n = 0;n<=3;n++)
{
temp_2 = conver(inb[n]);
y = (temp_2 << (n * 8)) | y;
temp_2 = conver(inb[n + 4]);
z = (temp_2 << (n * 8)) | z;
}
n = 32;
while (n > 0)
{
sum = (cnDelta + sum)& mask;
temp = (z << 4) & mask;
temp = (temp + a) & mask;
temp_1 = (z + sum) & mask;
temp = (temp ^ temp_1) & mask;
temp_1 = (z >> 5) & mask;
temp_1 = (temp_1 + b) & mask;
temp = (temp ^ temp_1) & mask;
temp = (temp + y) & mask;
y = temp & mask;
/*y += ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b); */
temp = (y << 4) & mask;
temp = (temp + c) & mask;
temp_1 = (y + sum) & mask;
temp = (temp ^ temp_1) & mask;
temp_1 = (y >> 5) & mask;
temp_1 = (temp_1 + d) & mask;
temp = (temp ^ temp_1) & mask;
temp = (z + temp) & mask;
z = temp & mask;
/* z += ((y << 4) + c) ^ (y + sum) ^ ((y >> 5) + d); */
n = n - 1;
}
for(n = 0;n<=3;n++)
{
outb[n] = (byte)((y >>> (n * 8)) & 255);
outb[n + 4] =(byte)((z >>> (n * 8)) & 255);
}
}
public void DeCode(byte[] inb, byte[] outb, String Key )
{
long cnDelta,y,z,a,b,c,d,temp_2;
long [] buf=new long[16];
int n,i,nlen;
long sum;
long temp,temp_1;
long mask=4294967295L;
//UInt32 temp, temp_1;
String temp_String ;
cnDelta = 2654435769L;
sum = 3337565984L;
nlen = Key.length();
i = 0;
for( n = 1 ;n<= nlen ;n=n+2)
{
temp_String =Key.substring(n-1, n-1+2);
buf[i] =HexToInt(temp_String);
i = i + 1;
}
a = 0 ; b = 0 ; c = 0 ; d = 0;
for(n = 0;n<=3;n++)
{
a = (buf[n] << (n * 8)) | a;
b = (buf[n + 4] << (n * 8)) | b;
c = (buf[n + 4 + 4] << (n * 8)) | c;
d = (buf[n + 4 + 4 + 4] << (n * 8)) | d;
}
y = 0;
z = 0;
for(n = 0;n<=3;n++)
{
temp_2 = conver(inb[n]);
y = (temp_2 << (n * 8)) | y;
temp_2 = conver(inb[n + 4]);
z = (temp_2 << (n * 8)) | z;
}
n = 32;
while (n > 0)
{
temp = (y << 4) & mask;
temp = (temp + c) & mask;
temp_1 = (y + sum) & mask;
temp = (temp ^ temp_1) & mask;
temp_1 = (y >> 5) & mask;
temp_1 = (temp_1 + d) & mask;
temp = (temp ^ temp_1) & mask;
temp = (z - temp) & mask;
z = temp & mask;
/* z += ((y << 4) + c) ^ (y + sum) ^ ((y >> 5) + d); */
temp = (z << 4) & mask;
temp = (temp + a) & mask;
temp_1 = (z + sum) & mask;
temp = (temp ^ temp_1) & mask;
temp_1 = (z >> 5) & mask;
temp_1 = (temp_1 + b) & mask;
temp = (temp ^ temp_1) & mask;
temp = (y - temp ) & mask;
y = temp & mask;
/*y += ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b); */
sum = (sum-cnDelta)& mask;
n = n - 1;
}
for(n = 0;n<=3;n++)
{
outb[n] = (byte)((y >>> (n * 8)) & 255);
outb[n + 4] =(byte)((z >>> (n * 8)) & 255);
}
}
public static void main (String[] args)
{
System.out.println(IdUtil.simpleUUID());
SoftKey mysoftkey = new SoftKey();
String InString,Outstring,Outstring_2;
InString="1122222222";
Outstring=mysoftkey.StrEnc(InString,"5cb4b5fcfe474657b5621f34d0ea6df9");
Outstring_2=mysoftkey.StrDec(Outstring,"5cb4b5fcfe474657b5621f34d0ea6df9");
System.out.println(Outstring);
System.out.println(Outstring_2);
}
}

@ -0,0 +1,96 @@
package com.glxp.api.util.sm2;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.BCUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.SM2;
import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey;
import org.bouncycastle.jce.ECNamedCurveTable;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec;
import org.bouncycastle.jce.spec.ECNamedCurveSpec;
import org.bouncycastle.util.encoders.Hex;
import java.security.*;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.ECPublicKey;
import java.security.spec.*;
import java.util.Base64;
public class Test {
public static void main(String[] args) {
String text = "wangjing";
//使用随机生成的密钥对加密或解密
System.out.println("使用随机生成的密钥对加密或解密====开始");
SM2 sm2 = SmUtil.sm2();
// 公钥加密
String encryptStr = sm2.encryptBcd(text, KeyType.PublicKey);
System.out.println("公钥加密:" + encryptStr);
//私钥解密
String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
System.out.println("私钥解密:" + decryptStr);
System.out.println("使用随机生成的密钥对加密或解密====结束");
//使用自定义密钥对加密或解密
System.out.println("使用自定义密钥对加密或解密====开始");
String hutoolPrivateKeyHex = HexUtil.encodeHexStr(BCUtil.encodeECPrivateKey(sm2.getPrivateKey()));
String hutoolPublicKeyHex = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getEncoded(false));
String hutoolPublicKeyHexX = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getXCoord().getEncoded());
String hutoolPublicKeyHexY = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getYCoord().getEncoded());
System.out.println(hutoolPrivateKeyHex);
System.out.println(hutoolPublicKeyHex);
System.out.println(hutoolPublicKeyHexX);
System.out.println(hutoolPublicKeyHexY);
ECPublicKey publicKey = hexToSM2PublicKey(hutoolPublicKeyHexX, hutoolPublicKeyHexY);
String hutoolPublicKeyHex1 = HexUtil.encodeHexStr(publicKey.getEncoded());
System.out.println(hutoolPublicKeyHex1);
SM2 sm22 = SmUtil.sm2(hutoolPrivateKeyHex, hutoolPublicKeyHex1);
// 公钥加密
String encryptStr2 = sm22.encryptBcd(text, KeyType.PublicKey);
System.out.println("公钥加密:" + encryptStr2);
//私钥解密
String decryptStr2 = StrUtil.utf8Str(sm22.decryptFromBcd(encryptStr2, KeyType.PrivateKey));
System.out.println("私钥解密:" + decryptStr2);
System.out.println("使用自定义密钥对加密或解密====结束");
}
public static ECPublicKey hexToSM2PublicKey(String x, String y) {
ECPublicKey pubkey = null;
try {
KeyFactory keyFactory = KeyFactory.getInstance("EC");
ECPoint ecPoint = new ECPoint(
new BigInteger(x, 16), new BigInteger(y, 16));
ECNamedCurveParameterSpec parameterSpec = ECNamedCurveTable.getParameterSpec("sm2p256v1");
ECNamedCurveSpec spec = new ECNamedCurveSpec("sm2p256v1", parameterSpec.getCurve(), parameterSpec.getG(), parameterSpec.getN(), parameterSpec.getH(), parameterSpec.getSeed());
ECPublicKeySpec keySpec = new ECPublicKeySpec(ecPoint, spec);
pubkey = new BCECPublicKey("BC", keySpec, BouncyCastleProvider.CONFIGURATION);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return pubkey;
}
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.ud.UdInfoMapper">
</mapper>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.ud.UdProducePlanMapper">
</mapper>
Loading…
Cancel
Save