3 O4 c G- {' A' U/ s+ e- c( g$ \, Z4 F9 u/ b5 Z4 C; y
# ^4 c% M, \: b. u. f
. Y8 G+ e+ [; ~爱丽舍轿车仪表算法
" C6 q9 g6 g0 D/ o. u) `2 m- I& w爱里舍液晶里程表数据 (7592KM)
8 u+ o, N/ g3 ~# V$ N) p% T8 w a芯片型号: 93C46
. X( i9 i; g2 q j00000000 17 00 75 92 17 00 75 92 17 00 75 92 17 00 75 92 ..u.'.u...u...u.
/ x$ @8 {7 |( |, A3 h00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
: ?6 ^) `, u+ s/ L8 K8 A00000020 17 00 75 92 F1 A2 FE 0C FE 0C 00 43 B5 20 00 43 ..u........C. .C
b, T: E3 x/ O6 K( C" i( p00000030 0B E2 00 00 EC 78 0E 0C 1A AA 00 00 79 96 00 00 .....x......y...
! K# I5 s- O: u) J# A8 X3 r6 P00000040 7F 7F 7F 7F 7F 7F 00 A0 74 89 29 7A 00 00 6B 00 ........t.)z..k.
3 Q( B$ v- _, ]3 c1 e00000050 00 02 00 12 00 00 00 00 00 00 00 01 00 00 00 00 ................. w7 g. X' B, T- T, ^, q. `
00000060 00 00 00 00 00 00 00 14 88 00 75 10 FB 10 13 01 ..........u.....2 w" l( {! [9 J {' V+ ^+ s* Z$ U
00000070 10 88 18 DB B4 12 CB 00 09 15 00 FF 00 00 00 00 ................
8 o" ], I$ j2 I v( [: f7 C
6 S/ d v( ?7 t. s$ b) r( n8 y6 `, N% Q00000000 17 00 75 92 17 00 75 92 17 00 75 92 17 00 75 92 ..u.'.u...u...u.
8 B. F* n- ~, @5 n! I% D: X; B重复四次,17为效验位。7为里程数的第一位。1为加密位。
% @% l& Y4 n* ?+ H首先可以确定加密字节的低位数字(也就是公里数的最高位有效数字)在这里为 7
: {: k3 ?# u0 E6 \然后用计算 7 个数字之和,所得结果 转换为 16 进制,接着取反,! y, F3 \& U3 g8 v
取反的结果的低位数字就是加密字节的高位数字+ ?$ d* l5 D+ Q* [
可能的数值为 0,1,2,3,4, ... E,F 合计16种可能。' |, p+ V) B* E: b1 x# s! j) W, l
(7 个数字 指的是 :- w8 n* `8 r5 ?% }; _# d
加密字节的低位数字 7
% F: f. W) W1 Y; e公里数的十万位数字 0
- T$ R4 {3 R6 ~1 @& {公里数的万位数字 0
: O3 i% R! x1 e' l$ h8 V4 M) J公里数的千位数字 7
1 Q8 i7 w1 z8 E" B公里数的百位数字 54 e- F5 ?2 d% F! k
公里数的十位数字 9
0 M4 ^. ]8 ?& ^3 H6 n+ I公里数的个位数字 2: X& n N+ f& f. t
! B* s: g# d9 {. u! [7 0 0 7 5 9 2. z$ O7 I* K& G) U( K
)
& K; @& z9 e/ t" Z* r7 R看看这个数据的计算过程:
8 K" ~5 i! q! R- B$ X$ @" Z& D P首先可以确定加密字节的低位数字 = 70 S4 i) n) o3 [* j
7 + 0 + 0 + 7 + 5 + 9 + 2 = 30 结果 转换为 16进制 = 1E 接着取反 =E1! G" R& s8 v" W( X
因此加密字节的高位数字为 1" Q6 L7 B0 z4 @( d7 a0 P; r+ e
|