WEB开发网
开发学院数据库DB2 使用 Optim Data Privacy 解决方案在开放平台上定... 阅读

使用 Optim Data Privacy 解决方案在开放平台上定制数据转换

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: 取 S 对 11 的模 j,j = mod(S, 11)根据 j 的值,使用 Optim Data Privacy 解决方案在开放平台上定制数据转换(9),得到校验码 Yj,Yj:1 0 X 9 8 7 6 5 4 3 2,DECIMAL数据类型专用,这里不需要ID,//转换后的数据sizeof

取 S 对 11 的模 j,j = mod(S, 11)

根据 j 的值,得到校验码 Yj,Yj:1 0 X 9 8 7 6 5 4 3 2,j=0,1...10

转换部分的关键代码如下:

 // 根据身份证最后四位生成随机数序列 
  seed=atoi(&ID[14]); 
  srand(seed); 
 
 // 分别获得随机生成的省号位置、出生年份和出生月份 
  pos[0]=rand()%31; 
  pos[1]=rand()%30+70; 
  pos[2]=rand()%12+1; 
 
 // 将数字转化为字符 
 itoa(pos[1],year,10); 
 itoa(pos[2],month,10); 
  
 // 替换省号 
  ID[0]=pro[2*pos[0]]; 
  ID[1]=pro[2*pos[0]+1]; 
 
 // 替换年份 
 ID[8]=year[0]; 
 ID[9]=year[1]; 
 // 替换月份 
 if(month[1]!='\0') 
 { 
  ID[10]=month[0]; 
  ID[11]=month[1]; 
 } 
 else 
 { 
  ID[10]='0'; 
  ID[11]=month[0]; 
 } 
 
 // 得到每一位身份证的整形值 
 for(i=0;i<17;i++) 
  data[i]=ID[i]-'0'; 
 
 // 计算校验位 
 data[17]=0; 
 for(i=0;i<17;i++) 
   data[17]+=data[i]*wi[i]; 
 // 校验位赋值 
 ID[17]=yi[data[17]%11]; 

最后,将变化完成的数据写到目标列中。代码如下:

 ( rc = (*pInputParms->pPSTPutColValue)  // 目标列赋值函数 
  (PST_C_CHAR,  // 目标列数据类型   
  0,       //Precision,DECIMAL 数据类型专用,这里不需要    
  0,       //Scale,DECIMAL 数据类型专用,这里不需要    
  ID,       // 转换后的数据 
  sizeof(ID),   // 数据大小 
  IndVar));    // 赋值是否为空,-1 为空,不空为 0 

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 Optim Data

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接