对于公交卡以及各种智能卡,每张卡需要有自己的密码;对于管理者(服务端),如果每张卡都维护一个独立的密码的话,负担比较大,也不方便管理。
一般的做法是在服务端有一个主控密码,然后用主控密码和每张卡的卡号(卡号是每张卡的唯一的标识)生成每张卡对应的自己的密码。这样就实现了“一密多卡”(一个主控密码可以用于很多张卡)和“一卡一密”(每张卡都有自己独立的密码)。
下面是一个具体实现的例子,DES/3DES也可以换成AES/SM1/SM4,只要是一种安全的对称加密算法即可。
image.png