lizhendong
级别: 家园常客
精华主题: 0
发帖数量: 608 个
工控威望: 800 点
下载积分: 1992 分
在线时间: 851(小时)
注册时间: 2016-10-12
最后登录: 2024-12-20
查看lizhendong的 主题 / 回贴
楼主  发表于: 2022-07-10 22:57
这个函数原理和调用????C的高手看看!!!


static const char sel[] = {
'B','C','D','F','G',
'H','J','K','M','P',
'Q','R','T','V','W',
'X','Y','2','3','4',
'6','7','8','9', '\0'};

char *b24e(char *buf, unsigned char *byst, size_t sizeOfBytes)
{
int i = 0;
unsigned char *p = byst;
while ((size_t)(i = (p-byst)) < sizeOfBytes) {
  buf[2*i] = sel[((*p) >> 4)];
  buf[(2*i)+1] = sel[23 - ((*p) & 0x0f)];
  p++;
}
buf[(2*i)+1] = '\0';
return buf;
}

unsigned char *b24d(unsigned char *buf, char *str, size_t countOfChars)
{
size_t i;
char *p = str;
char *loc[2];
unsigned char n[2];
if (countOfChars % 2)
  return NULL;
for (i = 0; i < (countOfChars>>1); i++) {

  loc[0] = strchr( sel, str[2*i] );
  loc[1] = strchr( sel, str[ ( 2*i ) + 1 ] );
  if (loc[0] == NULL || loc[1] == NULL)
   return NULL;
  n[0] = (unsigned char)( loc[0] - sel );
  n[1] = 23 - (unsigned char)( loc[1] - sel );
  buf = (unsigned char)((n[0] << 4) | n[1]);
}
return buf;
}
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 757 个
工控威望: 3145 点
下载积分: 13422 分
在线时间: 1111(小时)
注册时间: 2019-12-26
最后登录: 2024-12-19
查看13821917697的 主题 / 回贴
1楼  发表于: 2022-07-11 15:15
图片:
好像就是类似动态密码的东西,把你输入的东西,按照这个转换成一个码,码由你最上面定义的那个字符数组组成。
本帖最近评分记录:
  • 下载积分:+1(lizhendong) 热心助人!
    风生水起
    人生就像一杯苦丁茶,不会苦一辈子,但会苦一阵子
    级别: 略有小成
    精华主题: 0
    发帖数量: 231 个
    工控威望: 392 点
    下载积分: 1713 分
    在线时间: 19(小时)
    注册时间: 2022-04-13
    最后登录: 2023-03-09
    查看风生水起的 主题 / 回贴
    2楼  发表于: 2022-07-11 20:28
    涨知识了
    三人行者必有我师 ,择其善者而从之
    304364641
    级别: 探索解密
    精华主题: 0
    发帖数量: 47 个
    工控威望: 100 点
    下载积分: 460 分
    在线时间: 18(小时)
    注册时间: 2022-06-25
    最后登录: 2023-11-02
    查看304364641的 主题 / 回贴
    3楼  发表于: 2022-07-12 14:05
    ccc189
    级别: 略有小成
    精华主题: 0
    发帖数量: 56 个
    工控威望: 223 点
    下载积分: 5048 分
    在线时间: 2400(小时)
    注册时间: 2022-07-04
    最后登录: 2024-11-25
    查看ccc189的 主题 / 回贴
    4楼  发表于: 2022-07-12 17:20