3 k/ L) {( m3 P2 o: G1 Q3 b7 p& F# }6 g+ ]
9 ?+ E/ P, ^9 n3 b, V) i+ R# a
! `4 b- M* r3 B: n$ v' J& H爱丽舍轿车仪表算法
1 y; N7 G1 I$ U爱里舍液晶里程表数据 (7592KM)
8 g) W) r7 R5 [芯片型号: 93C46 : Y8 V$ T/ o6 u& _3 Z9 n' i2 D
00000000 17 00 75 92 17 00 75 92 17 00 75 92 17 00 75 92 ..u.'.u...u...u.
# l& W3 H$ s! f3 x00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................$ `& u/ r6 t- b$ [
00000020 17 00 75 92 F1 A2 FE 0C FE 0C 00 43 B5 20 00 43 ..u........C. .C
8 @2 z* T+ |8 I+ u. a; f00000030 0B E2 00 00 EC 78 0E 0C 1A AA 00 00 79 96 00 00 .....x......y...5 `7 U7 h0 g( q. A& y: @: `# {
00000040 7F 7F 7F 7F 7F 7F 00 A0 74 89 29 7A 00 00 6B 00 ........t.)z..k.
O- o& a4 b1 s3 a5 Y. i00000050 00 02 00 12 00 00 00 00 00 00 00 01 00 00 00 00 ................
; L; h1 M8 Y; V00000060 00 00 00 00 00 00 00 14 88 00 75 10 FB 10 13 01 ..........u.....
: E- @9 d5 [/ b00000070 10 88 18 DB B4 12 CB 00 09 15 00 FF 00 00 00 00 ................) G) N7 h* X% I% W6 Z/ M
) M- i( z* n9 x3 ~' u
00000000 17 00 75 92 17 00 75 92 17 00 75 92 17 00 75 92 ..u.'.u...u...u.+ P3 g% b Z& h$ M7 Z+ ?( T- E
重复四次,17为效验位。7为里程数的第一位。1为加密位。 8 X0 J* @7 l2 W o4 M B
首先可以确定加密字节的低位数字(也就是公里数的最高位有效数字)在这里为 7
3 r/ O# w& C- ~" q然后用计算 7 个数字之和,所得结果 转换为 16 进制,接着取反,& s6 E7 @7 R4 o# w" k5 I9 f
取反的结果的低位数字就是加密字节的高位数字
1 H5 Y+ N/ q. n可能的数值为 0,1,2,3,4, ... E,F 合计16种可能。+ A& l9 R8 |( Q: \0 I
(7 个数字 指的是 :
8 W" A8 N. G8 m1 j! d5 r9 q0 {( F/ x加密字节的低位数字 70 S0 K! y& B$ S; o
公里数的十万位数字 0 L- Y. t; ~. u
公里数的万位数字 0
1 h7 ~, L7 A7 f9 X) {" l7 L/ ?2 x公里数的千位数字 7 / w& T+ |- m: C" [8 G
公里数的百位数字 5
. q" _6 }5 a) Y: A7 E# \9 I公里数的十位数字 9
7 h, N2 {2 F' s1 |. p公里数的个位数字 29 K) {) ~2 f* j8 T
/ }$ }( L$ w1 V+ X/ g; H- R& Z) r2 g
7 0 0 7 5 9 2
: x4 a$ F3 x8 n. Z! d, J2 F; n)
" d. M8 [0 l" W% B3 W6 k看看这个数据的计算过程:
( f6 d) D/ s* A% g/ N9 V4 I/ W首先可以确定加密字节的低位数字 = 7
3 S0 |3 c" s! x; }; O$ L P1 N7 + 0 + 0 + 7 + 5 + 9 + 2 = 30 结果 转换为 16进制 = 1E 接着取反 =E1
7 s+ ~$ e% N( o8 i) I3 n因此加密字节的高位数字为 1
8 z3 S3 E3 k0 [% o; c! b |