[分享]Lua小程序十六进制字符串和二进制数据间的转换

Lua小程序十六进制字符串二进制数据间的转换
从十六进制字符串转为二进制数:
1#! /usr/local/bi n/lua
2
3
4 --Note: Input hex string file's content must be
5 --a upper case hex string
6
7 --Check the arguments
8if#arg ~= 2 then
9print("Usage:hexstr2bytes.lua <Input Hex String File> <Output Bytes File>\n"); it();
11 end
电子表单系统12
存取一体机13 --Open input hex string file
14 local hexstrfile = io.open(arg[1], "rb");
15if nil == hexstrfile then
16print("Can not open input file!\n");
18 end
19
20 --Read from the hex string file
21 local hexstr = hexstrfile:read("*a");
22if nil == hexstr then
23print("Can not read hex string from input file!\n");
24 elseif 1 == string.len(hexstr)%2 then
25print("Hex string size must be evel!\n");
27else
28print("Hex String:", hexstr, "\n");
29 end
30
31 --Close hex string file
32 hexstrfile:close();
谷氨酰胺合成酶
33
34 --Open output binary file
35 local bytesfile = io.open(arg[2], "wb");
36if nil == bytesfile then
37print("Can not open output file to write!\n");
39 end
40
41 --Convert hex string to bytes
42for i = 1, string.len(hexstr) - 1, 2 do
43local doublebytestr = string.sub(hexstr, i, i+1);
44local n = tonumber(doublebytestr, 16);
45if 0 == n then
46bytesfile:write('\00');
47else
48bytesfile:write(string.format("%c", n));
49end
50 end
51
52 --Close output binary file
53 bytesfile:close();
54
55
56
从二进制数转十六进制字符串:
1#! /usr/local/bi n/lua
2
3
4 --Check the arguments
5if#arg ~= 2 then
应用系统集成6print("Usage:bytes2hexstr.lua <Input Bytes File> <Output Hex String File>\n"); it();
8 end
9
10 --Open input bytes file
11 local bytesfile = io.open(arg[1], "rb");
12if nil == bytesfile then
13print("Can not open input file!\n");
15 end
16
17 --Read from the bytes file
18 local bytes = bytesfile:read("*a");
19if nil == bytes then
20print("Can not read bytes from input file!\n");
22 end
23
24 --Close bytes file
25 bytesfile:close();
26
27 --Open output hex string file
28 local hexstrfile = io.open(arg[2], "wb");
29if nil == hexstrfile then
30print("Can not open output file to write!\n");
32 end
33
34 --Convert bytes to hex string
35for i = 1, string.len(bytes) do
36local charcode = tonumber(string.byte(bytes, i, i));
37local hexstr = string.format("%02X", charcode);
38hexstrfile:write(hexstr);
39 end
40
41 --Close output hex string file
42 hexstrfile:close();
使用Crypto++生成的私钥文件(使用HexEncoder编码的DER格式文件)ch:
30820275020100300D06092A864886F70D01010105000482025F3082025B020100028
181009EEA4CF16CCD0DEF5FAA7B27D872AA0B5CCC286464E5338AE958E076BE764CA9 7C52E89D52329A4BB10DD586031CDD71D0C0581A8A3A41378AED44AA4F25B09C8BF2C 573C882BD82A8EE670C49229C609FB740CC7230FD25411851B3A37AEF91AA6EF3D2EF
2CEC5E03A04257D2C3FDDAAD092696A96B7D0358B1AE339625F9B50201110281802EB
D61ECA7879AAFD0D7C9DE8AF48C5DB1E1B186F07FA5BF71CED89B6531DA4FF763ADD3 EAFFD307341320AEF1DB503088B10ADAA120314C9245C8E6CBFC06C42AE3AFD1612DB A9FC6619E5E08E70BA0CB211D73FD94EA35D3D7BDFCA8AFDC98F5E1277FB1C12ACF09 75D3AA74227B6D23A692DF5B9E6720C5B81578CBBA3D2D024100D1FD16E7CB7898978
5B87DF9E80D071AF95AC47B70FD053A8D03784FF46D6484EEB09B200C3800FBE46C02
ysn-264A20127BED5CC880F0BAD8FDC9408FAE7A3C634C2C3024100C1BC58C4190843FF1A506 8390F9DA0EFC0857E936FD342007D6A86A23E51369E448D9F33ECFDC03BCBD6D67246
C09B5E9A7DF0F9F78DDB664911B0C1E8119A2702403DC2E89E8723782C90BDCAB2E9E
5B6CBB2C057E8122C4CD4FC4C508FFC98A51809F7B5278B1F87D19D892DF369C0654D
F0DCB9218D668C2B8A2BAD8A85970C1B024100B656EA21F97130F018C425DB59FDC4A 569E70DB7F0C6D4B52ABE9CD4EF5B7EB313581D5E0C3A1E56657EE7F31569FBA4552B
3D277F94924226A73CF2BC4CCD51024100BB5DA6433C896D07C88821107EF658DD201
B7049191213A2001D3EC0A68279CCC6A36EC5DB384F2797CA47F94505A069B247758D
8E6D1A8D30B068BCD26FC7F6
使用hexstr2bytes.lua:
hexstr2bytes.lua ch chout
生成chout:
00000000h: 30 82 02 75 02 01 00 30 0D 06 09 2A 86 48 86 F7 ; 0?u0*咹嗺
00000010h: 0D 01 01 01 05 00 04 82 02 5F 30 82 02 5B 02 01 ; .?_0?[..
00000020h: 00 02 81 81 00 9E EA 4C F1 6C CD 0D EF 5F AA 7B ; ..亖.炾L駆?颻獅00000030h: 27 D8 72 AA 0B 5C CC 28 64 64 E5 33 8A E9 58 E0 ; '豶?\?dd?婇X? 00000040h: 76 BE 76 4C A9 7C 52 E8 9D 52 32 9A 4B B1 0D D5 ; v緑L﹟R铦R2欿?? 00000050h: 86 03 1C DD 71 D0 C0 58 1A 8A 3A 41 37 8A ED 44 ; ?.輖欣X.?A7婍D 00000060h: AA 4F 25 B0 9C 8B F2 C5 73 C8 82 BD 82 A8 EE 67 ; 狾%皽嬺舠葌絺 g 00000070h: 0C 49 22 9C 60 9F B7 40 CC 72 30 FD 25 41 18 51 ; .I"渀煼@蘲0?A.Q 00000080h: B3 A3 7A EF 91 AA 6E F3 D2 EF 2C EC 5E 03 A0 42 ; 常z飸猲笠?靆.燘00000090h: 57 D2 C3 FD DA AD 09 26 96 A9 6B 7D 03 58 B1 AE ; W颐 ?&柀k}.X碑
000000a0h: 33 96 25 F9 B5 02 01 11 02 81 80 2E BD 61 EC A7 ; 3? .亐.絘歆
000000b0h: 87 9A AF D0 D7 C9 DE 8A F4 8C 5D B1 E1 B1 86 F0 ; 嚉 咨迠魧]贬眴? 000000c0h: 7F A5 BF 71 CE D8 9B 65 31 DA 4F F7 63 AD D3 EA ; •タq呜沞1贠鱟 ? 000000d0h: FF D3 07 34 13 20 AE F1 DB 50 30 88 B1 0A DA A1 ;  ?4.  跴0埍.凇000000e0h: 20 31 4C 92 45 C8 E6 CB FC 06 C4 2A E3 AF D1 61 ; 1L扙孺它.?惘補000000f0h: 2D BA 9F C6 61 9E 5E 08 E7 0B A0 CB 21 1D 73 FD ; -簾芶瀆.?犓!.s? 00000100h: 94 EA 35 D3 D7 BD FC A8 AF DC 98 F5 E1 27 7F B1 ; 旉5幼近ǒ軜踽'•? 00000110h: C1 2A CF 09 75 D3 AA 74 22 7B 6D 23 A6 92 DF 5B ; ??u营t"{m# 遊00000120h: 9E 67 20 C5 B8 15 78 CB BA 3D 2D 02 41 00 D1 FD ; 瀏鸥.x撕=-.A.妖
00000130h: 16 E7 CB 78 98 97 85 B8 7D F9 E8 0D 07 1A F9 5A ; .缢x槜吀} 鵝
00000140h: C4 7B 70 FD 05 3A 8D 03 78 4F F4 6D 64 84 EE B0 ; 膡p?:?xO鬽d勵? 00000150h: 9B 20 0C 38 00 FB E4 6C 02 A2 01 27 BE D5 CC 88 ; ?.8. l.?'菊虉00000160h: 0F 0B AD 8F DC 94 08 FA E7 A3 C6 34 C2 C3 02 41 ; ..瓘軘. F4旅.A 00000170h: 00 C1 BC 58 C4 19 08 43 FF 1A 50 68 39 0F 9D A0 ; .良X?.C .Ph9.潬00000180h: EF C0 85 7E 93 6F D3 42 00 7D 6A 86 A2 3E 51 36 ; 锢厏搊覤.}j啟>Q6 00000190h: 9E 44 8D 9F 33 EC FD C0 3B CB D6 D6 72 46 C0 9B ; 濪崯3忑?酥謗F罌000001a0h: 5E 9A 7D F0 F9 F7 8D DB 66 49 11 B0 C1 E8 11 9A ; ^殅瘗鲘踗I.傲?? 000001b0h: 27 02 40 3D C2 E8 9E 87 23 78 2C 90 BD CA B2 E9 ; '.@=妈瀲#x,惤什? 000001c0h: E5 B6 CB B2 C0 57 E8 12 2C 4C D4 FC 4C 50 8F FC ; 宥瞬繵?,L渣LP忺000001d0h: 98 A5 18 09 F7 B5 27 8B 1F 87 D1 9D 89 2D F3 69 ; 槬..鞯'?囇潐-骾000001e0h: C0 65 4D F0 DC B9 21 8D 66 8C 2B 8A 2B AD 8A 85 ; 纄M疖?峟??瓓? 000001f0h: 97 0C 1B 02 41 00 B6 56 EA 21 F9 71 30 F0 18 C4 ; ?..A.禫?鵴0?? 00000200h: 25 DB 59 FD C4 A5 69 E7 0D B7 F0 C6 D4 B5 2A BE ; %踄  ?佛圃?? 00000210h: 9C D4 EF 5B 7E B3 13 58 1D 5E 0C 3A 1E 56 65 7E ; 溤颷~?X.^.:.V e~ 00000220h: E7 F3 15 69 FB A4 55 2B 3D 27 7F 94 92 42 26 A7 ; 珞.i U+='•敀B&? 00000230h: 3C F2 BC 4C CD 51 02 41 00 BB 5D A6 43 3C 89 6D ; <;蚣L蚎.A.籡 <;塵
00000240h: 07 C8 88 21 10 7E F6 58 DD 20 1B 70 49 19 12 13 ; .葓!.~鯴?.pI
00000250h: A2 00 1D 3E C0 A6 82 79 CC C6 A3 6E C5 DB 38 4F ; ?.>捆倅唐 袍8O 00000260h: 27
97 CA 47 F9 45 05 A0 69 B2 47 75 8D 8E 6D 1A ; '検G鵈.爄睪u崕m. 00000270h: 8D 30 B0 68 BC D2 6F C7 F6 ; ?癶家o泅
使用bytes2hexstr.lua:
bytes2hexstr.lua chout chtmp
机箱怎么防尘
生成chtmp:
30820275020100300D06092A864886F70D01010105000482025F3082025B020100028
181009EEA4CF16CCD0DEF5FAA7B27D872AA0B5CCC286464E5338AE958E076BE764CA9 7C52E89D52329A4BB10DD586031CDD71D0C0581A8A3A41378AED44AA4F25B09C8BF2C 573C882BD82A8EE670C49229C609FB740CC7230FD25411851B3A37AEF91AA6EF3D2EF
2CEC5E03A04257D2C3FDDAAD092696A96B7D0358B1AE339625F9B50201110281802EB
D61ECA7879AAFD0D7C9DE8AF48C5DB1E1B186F07FA5BF71CED89B6531DA4FF763ADD3 EAFFD307341320AEF1DB503088B10ADAA120314C9245C8E6CBFC06C42AE3AFD1612DB A9FC6619E5E08E70BA0CB211D73FD94EA35D3D7BDFCA8AFDC98F5E1277FB1C12ACF09 75D3AA74227B6D23A692DF5B9E6720C5B81578CBBA3D2D024100D1FD16E7CB7898978
5B87DF9E80D071AF95AC47B70FD053A8D03784FF46D6484EEB09B200C3800FBE46C02
A20127BED5CC880F0BAD8FDC9408FAE7A3C634C2C3024100C1BC58C4190843FF1A506 8390F9DA0EFC0857E936FD342007D6A86A23E51369E448D9F33ECFDC03BCBD6D67246
C09B5E9A7DF0F9F78DDB664911B0C1E8119A2702403DC2E89E8723782C90BDCAB2E9E
5B6CBB2C057E8122C4CD4FC4C508FFC98A51809F7B5278B1F87D19D892DF369C0654D
F0DCB9218D668C2B8A2BAD8A85970C1B024100B656EA21F97130F018C425DB59FDC4A 569E70DB7F0C6D4B52ABE9CD4EF5B7EB313581D5E0C3A1E56657EE7F31569FBA4552B
3D277F94924226A73CF2BC4CCD51024100BB5DA6433C896D07C88821107EF658DD201
B7049191213A2001D3EC0A68279CCC6A36EC5DB384F2797CA47F94505A069B247758D
8E6D1A8D30B068BCD26FC7F6

本文发布于:2024-09-22 20:18:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/223285.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议