C 如何从其他字符串中获取新字符串而不简单地将它们连接起来?

C 如何从其他字符串中获取新字符串而不简单地将它们连接起来?,c,algorithm,string,C,Algorithm,String,我想从其他字符串生成一个新字符串,而不使用串联函数或加密算法(md5、rsa、aes、sha256)。具体地说,我希望获得2个或3个(或更多)MAC地址,并将它们转换为1个唯一的数字(或1个唯一的字符串)。例如: Bemac_address_1=“123abc” Bemac_address_1=“789def” 将这两个字符串放入一个函数函数(mac_address_1,mac_address_2) 此函数返回一个新字符串new\u string=“1a5c9f” 当然,我可以从mac\u

我想从其他字符串生成一个新字符串,而不使用串联函数或加密算法(md5、rsa、aes、sha256)。具体地说,我希望获得2个或3个(或更多)MAC地址,并将它们转换为1个唯一的数字(或1个唯一的字符串)。例如:

  • Be
    mac_address_1=“123abc”
  • Be
    mac_address_1=“789def”
  • 将这两个字符串放入一个函数
    函数(mac_address_1,mac_address_2)
  • 此函数返回一个新字符串
    new\u string=“1a5c9f”

当然,我可以从
mac\u address\u 1
中提取前3个字符,并将它们与
mac\u address\u 2
中的最后3个字符连接起来。但是,根据应用程序和硬件制造商的不同,这种算法可能会生成重复的
新字符串
变量。

我要求将此问题移至StackOverflow,但它可能更像是一个数学问题……您必须更好地考虑您的需求。如果限制为6(固定长度?),则在数学上不可能创建一个保证唯一的数字(假设两个值a、b、元素[0、x])要获得唯一的组合,如果您不希望重复,则需要2*x“实例”)。听起来您希望创建加密散列而不将其称为加密散列。您无法知道您创建的任何新地址都是唯一的。供应商各自控制其分配的地址块,以确保复制不会发生esn不会发生。前三个字节应该指定供应商,所以您应该让它们单独使用。如果我们理解您为什么要这样做,这会有所帮助。您将在哪里使用此功能?我要求将此问题移至StackOverflow,但它可能更像一个数学问题……您必须更好地考虑您的要求。您希望如何t“组合”它们…如果限制为6(固定长度?),则在数学上不可能创建一个保证唯一的数字(假设两个值a,b,[0,x]的元素)要获得唯一的组合,如果您不希望重复,则需要2*x“实例”)。听起来您希望创建加密散列而不将其称为加密散列。您无法知道您创建的任何新地址都是唯一的。供应商各自控制其分配的地址块,以确保复制不会发生esn不会发生。前三个字节应该指定供应商,因此您应该将它们放在一边。如果我们理解您为什么要这样做,这会有所帮助。您将在哪里使用此功能?