CN114826556A - Front-end code processing method and device - Google Patents
Front-end code processing method and device Download PDFInfo
- Publication number
- CN114826556A CN114826556A CN202210238914.6A CN202210238914A CN114826556A CN 114826556 A CN114826556 A CN 114826556A CN 202210238914 A CN202210238914 A CN 202210238914A CN 114826556 A CN114826556 A CN 114826556A
- Authority
- CN
- China
- Prior art keywords
- key
- end code
- obfuscated
- real
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
Description
技术领域technical field
本公开涉及前端技术领域,尤其涉及前端代码处理方法及装置。The present disclosure relates to the field of front-end technologies, and in particular, to a method and apparatus for processing front-end codes.
背景技术Background technique
由于前端代码在客户端的浏览器中执行,属于公开状态,任何人都可以通过浏览器的开发者工具拿到前端代码,从而导致前端代码中包含的任何私密信息都有可能泄露出去,因此某些场景下需要在前端采用加密以提升数据的安全性。出于安全和性能的平衡,业界通常采用AES(Advanced Encryption Standard,高级加密标准)加密算法,但是如何提升AES密钥的安全性,是保证前端加密安全的重点。业界通常有如下方式:Since the front-end code is executed in the client's browser, it is in a public state. Anyone can get the front-end code through the browser's developer tools, so that any private information contained in the front-end code may be leaked. Therefore, some In scenarios, encryption needs to be used at the front end to improve data security. For the balance between security and performance, the industry usually adopts the AES (Advanced Encryption Standard, Advanced Encryption Standard) encryption algorithm, but how to improve the security of the AES key is the key point to ensure the security of front-end encryption. The industry usually has the following methods:
通过接口请求从服务端获取密钥。这种方式的本质是将密钥存储的服务端,需要的时候从服务端获取。该方式的优点是保证了密钥存储的安全性,同时每次获取密钥时,服务端可生成新的密钥进行下发,保证密钥随时更新。但是缺点也很明显,首先服务端存储虽然保证了密钥存储的安全性,但在密钥传输过程中依然有泄露风险。攻击者通过浏览器的开发者调试工具,可以轻松的获取接口下发的密钥。其次从服务端获取密钥会阻塞加密过程,客户端必须等待接口下发成功以后才能进行加密,在很多时效性要求较高场景下,会降低页面的响应速度,影响用户体验。Obtain the key from the server through the interface request. The essence of this method is to store the key on the server side and obtain it from the server side when needed. The advantage of this method is that the security of key storage is ensured. At the same time, each time a key is obtained, the server can generate a new key and issue it to ensure that the key is updated at any time. However, the shortcomings are also obvious. First, although the server-side storage ensures the security of key storage, there is still a risk of leakage during the key transmission process. The attacker can easily obtain the key issued by the interface through the developer debugging tool of the browser. Secondly, obtaining the key from the server will block the encryption process. The client must wait for the interface to be successfully delivered before encryption. In many scenarios with high timeliness requirements, the response speed of the page will be reduced and the user experience will be affected.
将密钥存储在本地客户端缓存中,例如cookie(储存在用户本地终端上的数据),localstorage(本地存储)等。这种方式的优点是不会阻塞加密流程,随用随取。但是缺点也比较明显,攻击者可以比较容易的从缓存中获取密钥,并且更新密钥也会比较麻烦,需要修改客户端代码,重新发布。Store keys in the local client cache, such as cookies (data stored on the user's local terminal), localstorage (local storage), etc. The advantage of this method is that it does not block the encryption process and can be taken as needed. However, the disadvantages are also obvious. The attacker can easily obtain the key from the cache, and it is more troublesome to update the key, and the client code needs to be modified and republished.
将密钥存储在客户端的混淆压缩代码中。通常的做法是将密钥直接写在前端代码中,然后对前端代码做压缩混淆。这种方式攻击者必须通过调试或分析前端代码,才能在压缩混淆后的代码中找到密钥。然而这种方式只是相对提升了破解密钥的成本,熟悉浏览器开发者工具的攻击者依然能比较容易的获取密钥。Store the key in the obfuscated compressed code on the client side. The usual practice is to write the key directly in the front-end code, and then compress and obfuscate the front-end code. In this way, the attacker must debug or analyze the front-end code to find the key in the compressed obfuscated code. However, this method only increases the cost of cracking the key relatively, and attackers familiar with browser developer tools can still obtain the key relatively easily.
发明内容SUMMARY OF THE INVENTION
为克服相关技术中存在的问题,本公开的实施例提供一种前端代码处理方法及装置。技术方案如下:To overcome the problems existing in the related art, embodiments of the present disclosure provide a front-end code processing method and apparatus. The technical solution is as follows:
根据本公开的实施例的第一方面,提供一种前端代码处理方法,包括:According to a first aspect of the embodiments of the present disclosure, there is provided a front-end code processing method, including:
获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;Obtain a secondary key, wherein the secondary key is generated according to the real key and a preset algorithm;
将所述二次密钥引入到前端代码中,并根据所述预设算法解密所述二次密钥得到真实密钥和版本号;Introducing the secondary key into the front-end code, and decrypting the secondary key according to the preset algorithm to obtain the real key and version number;
若版本号校验通过,根据所述真实密钥对前端代码中的待加密信息进行加密;If the version number verification is passed, encrypt the information to be encrypted in the front-end code according to the real key;
对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。Deeply obfuscate front-end code to generate front-end code files for browser use.
在一实施例中,根据真实密钥、预设算法生成二次密钥,包括:In one embodiment, generating a secondary key according to a real key and a preset algorithm includes:
根据真实密钥生成多个混淆密钥并组成混淆密钥数组,其中,每个混淆密钥是由与真实密钥相同的字符集组成的字符串,并且长度与真实密钥相同;Generate multiple obfuscated keys according to the real key and form an obfuscated key array, wherein each obfuscated key is a string composed of the same character set as the real key, and the length is the same as the real key;
将真实密钥随机插入混淆密钥数组中,将真实密钥在混淆密钥数组中的位置记录为第一插入位置;Randomly insert the real key into the obfuscated key array, and record the position of the real key in the obfuscated key array as the first insertion position;
将预设的密钥版本号插入混淆密钥数组中,将密钥版本号在混淆密钥数组中的位置记录为第二插入位置;Insert the preset key version number into the obfuscated key array, and record the position of the key version number in the obfuscated key array as the second insertion position;
将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置;inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array;
以预设方式将混淆密钥数组转为字符串;Convert the obfuscated key array to a string by default;
使用预设加密算法对字符串进行加密,得到二次密钥。Use the preset encryption algorithm to encrypt the string to obtain the secondary key.
在一实施例中,将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置,包括,将所述第一插入位置和第二插入位置插入到混淆密钥数组的最后面。In one embodiment, inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array includes inserting the first insertion position and the second insertion position into the obfuscated key array. Last.
在一实施例中,生成二次密钥的模块独立于前端代码,以及,前端代码将解密二次密钥得到真实密钥的解密模块作为依赖引入。In one embodiment, the module for generating the secondary key is independent of the front-end code, and the front-end code imports the decryption module for decrypting the secondary key to obtain the real key as a dependency.
根据本公开的实施例的第二方面,提供一种前端代码处理装置,包括:According to a second aspect of the embodiments of the present disclosure, there is provided a front-end code processing apparatus, comprising:
获取模块,用于获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;an acquisition module, configured to acquire a secondary key, wherein the secondary key is generated according to a real key and a preset algorithm;
解密模块,用于将所述二次密钥引入到前端代码中,并根据所述预设算法解密所述二次密钥得到真实密钥和版本号;A decryption module for introducing the secondary key into the front-end code, and decrypting the secondary key according to the preset algorithm to obtain a real key and a version number;
加密模块,用于若版本号校验通过,根据所述真实密钥对前端代码进行加密;an encryption module, used for encrypting the front-end code according to the real key if the version number verification is passed;
混淆模块,用于对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。The obfuscation module is used to deeply obfuscate the front-end code to generate front-end code files for browsers.
在一实施例中,所述装置还包括:生成模块,用于根据真实密钥、预设算法生成二次密钥,包括:In one embodiment, the apparatus further includes: a generating module configured to generate a secondary key according to the real key and a preset algorithm, including:
根据真实密钥生成多个混淆密钥并组成混淆密钥数组,其中,每个混淆密钥是由与真实密钥相同的字符集组成的字符串,并且长度与真实密钥相同;Generate multiple obfuscated keys according to the real key and form an obfuscated key array, wherein each obfuscated key is a string composed of the same character set as the real key, and the length is the same as the real key;
将真实密钥随机插入混淆密钥数组中,将真实密钥在混淆密钥数组中的位置记录为第一插入位置;Randomly insert the real key into the obfuscated key array, and record the position of the real key in the obfuscated key array as the first insertion position;
将预设的密钥版本号插入混淆密钥数组中,将密钥版本号在混淆密钥数组中的位置记录为第二插入位置;Insert the preset key version number into the obfuscated key array, and record the position of the key version number in the obfuscated key array as the second insertion position;
将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置;inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array;
以预设方式将混淆密钥数组转为字符串;Convert the obfuscated key array to a string by default;
使用预设加密算法对字符串进行加密,得到二次密钥。Use the preset encryption algorithm to encrypt the string to obtain the secondary key.
在一实施例中,将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置,包括,将所述第一插入位置和第二插入位置插入到混淆密钥数组的最后面。In one embodiment, inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array includes inserting the first insertion position and the second insertion position into the obfuscated key array. Last.
在一实施例中,生成二次密钥的模块独立于前端代码,以及前端代码将解密二次密钥得到真实密钥的解密模块作为依赖引入。In one embodiment, the module for generating the secondary key is independent of the front-end code, and the front-end code imports the decryption module that decrypts the secondary key to obtain the real key as a dependency.
根据本公开的实施例的第三方面,提供一种前端代码处理装置,其特征在于,包括:According to a third aspect of the embodiments of the present disclosure, there is provided a front-end code processing apparatus, characterized by comprising:
处理器;processor;
用于存储处理器可执行指令的存储器;memory for storing processor-executable instructions;
其中,处理器被配置为:where the processor is configured as:
获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;Obtain a secondary key, wherein the secondary key is generated according to the real key and a preset algorithm;
根据所述预设算法解密所述二次密钥得到真实密钥和版本号;Decrypt the secondary key according to the preset algorithm to obtain the real key and version number;
若版本号校验通过,根据所述真实密钥对前端代码进行加密;If the version number verification is passed, encrypt the front-end code according to the real key;
对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。Deeply obfuscate front-end code to generate front-end code files for browser use.
根据本公开的实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现本公开的实施例的第一方面中任一项方法的步骤。According to a fourth aspect of the embodiments of the present disclosure, there is provided a computer-readable storage medium on which computer instructions are stored, characterized in that, when the instructions are executed by a processor, any one of the first aspects of the embodiments of the present disclosure is implemented. steps of a method.
本公开的实施例提供的技术方案中,避免了异步请求耗时,这在接口请求加密场景下极大的缩短了从后端获取数据的时间,提升页面整体的相应速度和用户体验,也避免了密钥在传输过程中被破解的风险;避免了本地缓存容易导致密钥泄露和更新困难问题;通过引入“二次密钥”,进一步降低了密钥暴露风险,提升破解难度,攻击者即使通过调试最终获取了密钥,该密钥也是经过处理的“二次密钥”,无法直接使用,同时通过密钥的版本校验,可以做到一旦密钥被攻破,可及时更新密钥并升级密钥版本和密钥生成算法,使得已暴露密钥彻底失效,降低密钥暴露带来的损失。In the technical solutions provided by the embodiments of the present disclosure, the time-consuming asynchronous request is avoided, which greatly shortens the time for obtaining data from the backend in the scenario of interface request encryption, improves the corresponding speed and user experience of the entire page, and avoids It avoids the risk of the key being cracked during transmission; avoids the problem that the local cache easily leads to key leakage and difficulty in updating; by introducing a "secondary key", the risk of key exposure is further reduced and the difficulty of cracking is increased. The key is finally obtained through debugging. This key is also a processed "secondary key" and cannot be used directly. At the same time, through the version verification of the key, once the key is broken, the key can be updated in time and Upgrade the key version and key generation algorithm to completely invalidate the exposed key and reduce the loss caused by key exposure.
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure.
附图说明Description of drawings
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the disclosure and together with the description serve to explain the principles of the disclosure.
图1是根据一示例性实施例示出的前端代码处理方法的流程图;1 is a flowchart of a front-end code processing method according to an exemplary embodiment;
图2是根据一示例性实施例示出的前端代码处理方法的流程图;2 is a flowchart of a front-end code processing method shown according to an exemplary embodiment;
图3是根据一示例性实施例示出的前端代码处理方法的流程图;3 is a flowchart of a front-end code processing method according to an exemplary embodiment;
图4是根据一示例性实施例示出的前端代码处理装置的框图;4 is a block diagram of a front-end code processing apparatus shown according to an exemplary embodiment;
图5是根据一示例性实施例示出的前端代码处理装置的框图;5 is a block diagram of a front-end code processing apparatus shown according to an exemplary embodiment;
图6是根据一示例性实施例示出的前端代码处理装置的框图。Fig. 6 is a block diagram of a front-end code processing apparatus according to an exemplary embodiment.
具体实施方式Detailed ways
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。Exemplary embodiments will be described in detail herein, examples of which are illustrated in the accompanying drawings. When the following description refers to the drawings, the same numerals in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the illustrative examples below are not intended to represent all implementations consistent with this disclosure. Rather, they are merely examples of apparatus and methods consistent with some aspects of the present disclosure as recited in the appended claims.
对于前端代码的加密密钥,目前业界通常:通过接口请求从服务端获取密钥;将密钥存储在本地客户端缓存中;或者将密钥存储在客户端的混淆压缩代码中。然而,上述对加密密钥的处理方法都不能保证密钥的安全性。本发明的实施例提供一种前端代码处理方法,用以改善这种情况。For the encryption key of the front-end code, the current industry usually: obtain the key from the server through an interface request; store the key in the local client cache; or store the key in the obfuscated compression code of the client. However, none of the above-mentioned processing methods for encryption keys can guarantee the security of the keys. Embodiments of the present invention provide a front-end code processing method to improve this situation.
本发明的实施例提供了一种前端代码处理方法,如图1所示,包括如下步骤101至步骤104:An embodiment of the present invention provides a front-end code processing method, as shown in FIG. 1 , including the following
在步骤101中,获取二次密钥,其中,所述二次密钥是根据真实密钥以及预设算法生成。In
在本实施例中,开发人员在对前端代码进行处理时需要获取密钥,以对前端代码中的待加密信息进行加密。这里待加密信息是代码运行过程中的某些关键信息,比如http请求的请求参数、用户的私密信息等。该二次密钥可以是由独立于业务代码的生成模块根据真实密钥、预设算法生成的,即并非是真实密钥。该生成模块的输入是真实秘钥,然后对真实秘钥进行加密后输出二次秘钥以供使用。这里,将生成二次密钥的模块独立于业务之外,使得攻击者无法通过业务代码破解二次秘钥的加密逻辑。In this embodiment, the developer needs to obtain a key when processing the front-end code, so as to encrypt the information to be encrypted in the front-end code. The information to be encrypted here is some key information in the code running process, such as the request parameters of the http request, the user's private information, etc. The secondary key may be generated by a generation module independent of the service code according to the real key and the preset algorithm, that is, it is not the real key. The input of the generation module is the real key, and then the real key is encrypted and the secondary key is output for use. Here, the module that generates the secondary key is independent of the service, so that the attacker cannot crack the encryption logic of the secondary key through the service code.
在步骤102中,将所述二次密钥引入到前端代码中,并根据预设算法解密二次密钥得到真实密钥和版本号。In
示例的,二次密钥是根据真实密钥、预设的加密算法生成的,那么要获得真实密钥,就可以采用预设的加密算法的逆运算来获得真实密钥。在本实施例中,还为二次密钥增加了版本号,在解密得出真实密钥和版本号后,可以先根据版本号进行校验,前端代码中的解密模块部分内置有正确的版本号,二次秘钥解密后得到的版本号应该和解密模块中内置的版本号一致的。只有校验通过、确认版本号是合法的,该二次密钥才是有效的,可以用来加密前端代码中的待加密信息。这样可以做到一旦密钥被攻破,可及时更新密钥并升级密钥版本和密钥生成算法,使得已暴露密钥彻底失效,降低密钥暴露带来的损失。For example, the secondary key is generated according to the real key and a preset encryption algorithm. To obtain the real key, the inverse operation of the preset encryption algorithm can be used to obtain the real key. In this embodiment, a version number is also added to the secondary key. After the real key and version number are obtained by decryption, verification can be performed according to the version number first. The decryption module part of the front-end code has a built-in correct version The version number obtained after the secondary key is decrypted should be the same as the version number built into the decryption module. Only when the verification is passed and the version number is confirmed to be legal, the secondary key is valid and can be used to encrypt the information to be encrypted in the front-end code. In this way, once the key is compromised, the key can be updated in time and the key version and key generation algorithm can be upgraded, making the exposed key completely invalid and reducing the loss caused by key exposure.
在步骤103中,若版本号校验通过,根据真实密钥对前端代码中的待加密信息进行加密。In
示例的,本实施例中使用AES加密算法对前端代码进行加密。Illustratively, in this embodiment, the AES encryption algorithm is used to encrypt the front-end code.
在步骤104中,对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。In step 104, the front-end code is deeply obfuscated to generate a front-end code file used by the browser.
此时,前端代码中已经引入了二次密钥,并且,前端代码中的待加密信息已经加密,对当前的前端代码文件进行深度混淆,二次秘钥也被混淆了。在一实施例中,可以使用工具javascript-obfuscator(一种JavaScript代码混淆工具)进行代码混淆。javascript-obfuscator的混淆比较复杂和彻底,包括对字符串进行切片分别存储、注入无用代码进行逻辑混淆、代码结构扁平化、注入防调试debugger等多种策略,可极大的提升代码的不可读性和不可调试性,同时也使混淆代码的逆向恢复变得更加困难。At this point, the secondary key has been introduced into the front-end code, and the information to be encrypted in the front-end code has been encrypted. The current front-end code file is deeply obfuscated, and the secondary key is also obfuscated. In one embodiment, a tool javascript-obfuscator (a JavaScript code obfuscation tool) can be used for code obfuscation. The obfuscation of javascript-obfuscator is more complicated and thorough, including slicing and storing strings separately, injecting useless code for logical obfuscation, flattening the code structure, injecting anti-debugging debugger and other strategies, which can greatly improve the unreadability of the code. and non-debuggability, while also making reverse recovery of obfuscated code more difficult.
本公开的实施例提供的技术方案中,相较于通过网络请求实时获取密钥方案,本申请提出的方案首先避免了异步请求耗时,这在接口请求加密场景下极大的缩短了从后端获取数据的时间,提升页面整体的相应速度和用户体验。其次也避免了密钥在传输过程中被破解的风险。相较于将密钥存储在本地客户端缓存方案,本申请提出的方案避免了本地缓存容易导致密钥泄露和更新困难问题。相较于直接将真实密钥存储在前端代码的方案,本申请提出的方案通过引入“二次密钥”,进一步降低了密钥暴露风险,提升破解难度。攻击者即使通过调试最终获取了密钥,该密钥也是经过处理的“二次密钥”,无法直接使用,同时通过密钥的版本校验,可以做到一旦密钥被攻破,可及时更新密钥并升级密钥版本和密钥生成算法,使得已暴露密钥彻底失效,降低密钥暴露带来的损失。此外,通过深度代码混淆,相较于业界传统的混淆方式,该方案的混淆代码更加可靠和安全,极大地提升了攻击成本,使得绝大部分攻击者可以知难而退。本申请提出的方案极大的提升了前端AES密钥存储的安全性,并且兼顾了页面性能,在安全性和性能之间取得了很好的平衡。In the technical solutions provided by the embodiments of the present disclosure, compared with the real-time key acquisition solution through network requests, the solution proposed in this application firstly avoids the time-consuming of asynchronous requests, which greatly shortens the time-consuming process in the interface request encryption scenario. The time it takes for the client to obtain data, and the overall corresponding speed and user experience of the page are improved. Secondly, it also avoids the risk of the key being cracked during transmission. Compared with the solution of storing the key in the local client cache, the solution proposed in this application avoids the problem that the local cache easily leads to the leakage of the key and the difficulty of updating. Compared with the solution of directly storing the real key in the front-end code, the solution proposed in this application further reduces the risk of key exposure and improves the difficulty of cracking by introducing a "secondary key". Even if the attacker finally obtains the key through debugging, the key is a processed "secondary key" and cannot be used directly. At the same time, through the version verification of the key, once the key is broken, it can be updated in time. key and upgrade the key version and key generation algorithm, making the exposed key completely invalid and reducing the loss caused by key exposure. In addition, through in-depth code obfuscation, compared with the traditional obfuscation method in the industry, the obfuscated code of this solution is more reliable and secure, which greatly increases the attack cost and enables most attackers to retreat. The solution proposed in this application greatly improves the security of the front-end AES key storage, takes into account the page performance, and achieves a good balance between security and performance.
下面通过实施例详细介绍实现过程。The following describes the implementation process in detail through embodiments.
所述步骤101中的二次密钥的生成可以在生成模块进行,与业务代码独立。二次密钥的生成方法可以包括以下步骤A1-A6:The generation of the secondary key in the
步骤A1,根据真实密钥生成多个混淆密钥并组成混淆密钥数组,其中,每个混淆密钥是由与真实密钥相同的字符集组成的字符串,并且长度与真实密钥相同。Step A1: Generate a plurality of obfuscated keys according to the real key and form an array of obfuscated keys, wherein each obfuscated key is a string composed of the same character set as the real key, and has the same length as the real key.
如图2所示为生成二次密钥的示意图。首先,根据真实密钥生成混淆密钥,所谓“混淆密钥”就是跟真实密钥拥有相同长度、相同字符集组成的一个字符串,该字符串是随机生成的。从外形特征看,跟真实密钥并无区别。可以一次生成多个混淆密钥:混淆密钥1、混淆密钥2、…、混淆密钥n,多个混淆密钥组成混淆数组A。Figure 2 is a schematic diagram of generating a secondary key. First, generate an obfuscated key based on the real key. The so-called "obfuscated key" is a string with the same length and the same character set as the real key, and the string is randomly generated. In terms of appearance features, it is no different from the real key. Multiple obfuscation keys can be generated at one time: obfuscated key 1, obfuscated key 2, ..., obfuscated key n, and multiple obfuscated keys form an obfuscated array A.
步骤A2,将真实密钥随机插入混淆密钥数组中,将真实密钥在混淆密钥数组中的位置记录为第一插入位置。Step A2: Randomly insert the real key into the obfuscated key array, and record the position of the real key in the obfuscated key array as the first insertion position.
如图2所示,将真实密钥随机插入混淆密钥数组A中,并记住插入位置P1。As shown in Figure 2, the real key is randomly inserted into the obfuscated key array A, and the insertion position P1 is remembered.
步骤A3,将预设的密钥版本号插入混淆密钥数组中,将密钥版本号在混淆密钥数组中的位置记录为第二插入位置。Step A3: Insert the preset key version number into the obfuscated key array, and record the position of the key version number in the obfuscated key array as the second insertion position.
如图2所示,为密钥混淆算法添加版本概念,将此时的版本号插入混淆密钥数组A中,并记住插入位置P2。As shown in Figure 2, the concept of version is added to the key obfuscation algorithm, the version number at this time is inserted into the obfuscated key array A, and the insertion position P2 is remembered.
步骤A4,将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置。Step A4: Insert the first insertion position and the second insertion position into preset positions of the obfuscation key array.
如图2所示,将位置P1,P2插入到混淆密钥组数组A的最后面。As shown in Figure 2, the positions P1 and P2 are inserted into the last of the obfuscated key group array A.
步骤A5,以预设方式将混淆密钥数组转为字符串。Step A5, converting the obfuscation key array into a string in a preset manner.
如图2所示,预设方式例如为特定的转换规则,根据转换规则将混淆密钥数组A转为字符串B。可以根据需要选择合适的转换规则,只要该转换规则能将密钥数组以特定的方式(算法)拼接成一个字符串,并且能从该字符串中还原出原数组的各组成部分即可。As shown in FIG. 2 , the preset method is, for example, a specific conversion rule, and the obfuscated key array A is converted into a string B according to the conversion rule. An appropriate conversion rule can be selected as required, as long as the conversion rule can splicing the key array into a string in a specific way (algorithm), and can restore each component of the original array from the string.
步骤A6,使用预设加密算法对字符串进行加密,得到二次密钥。Step A6: Encrypt the character string using a preset encryption algorithm to obtain a secondary key.
如图2所示,使用ABS加密算法对字符串B进行加密,生成二次密钥。As shown in Figure 2, the character string B is encrypted using the ABS encryption algorithm to generate a secondary key.
至此,生成模块就生成了具有版本号的二次密钥。在对前端代码进行处理时,就可以从生成模块申请二次密钥。So far, the generation module has generated the secondary key with the version number. When processing the front-end code, you can apply for the secondary key from the generation module.
在一个实施例中,如图3所示,对前端代码进行加密的处理方法可以包括以下步骤301-305:In one embodiment, as shown in FIG. 3, the processing method for encrypting the front-end code may include the following steps 301-305:
步骤301,从生成模块申请二次密钥。其中,生成模块根据预设算法生成二次密钥。
步骤302,根据上述预设算法对二次密钥进行逆向解密,分别得到真实密钥、版本号。Step 302: Perform reverse decryption on the secondary key according to the above preset algorithm to obtain the real key and version number respectively.
在一实施例中,前端代码还可以将对二次密钥进行解密的解密模块作为依赖引入。In one embodiment, the front-end code may also import a decryption module for decrypting the secondary key as a dependency.
步骤303,对版本号进行校验。
步骤304,判断版本号是否合法,如果不是则结束,如果是则执行305。
步骤305,使用真实密钥对前端代码中需要加密的数据进行加密。Step 305: Use the real key to encrypt the data that needs to be encrypted in the front-end code.
至此,对前端代码的加密过程结束,此时前端代码中引入了二次密钥,并且关键数据已经加密,后续可以将前端代码深度混淆以生成供浏览器使用的前端代码文件。这样,业务中只存储二次密钥,并且例如将“二次密钥”进行切片存储。使用时先将切片组装,然后根据对应的加密过程进行逆向解密,获取真实密钥后再进行业务加密。解密代码通过深度混淆进行隐藏,极大提升了破解难度。此外,针对密钥的二次加密过程独立于业务代码之外,以及业务代码将解密模块作为依赖引入,可以做到随时对密钥加密算法进行升级更新,比如每隔一个固定周期进行密钥升级,可进一步保证密钥存储安全性。At this point, the encryption process of the front-end code is over. At this time, the secondary key is introduced into the front-end code, and the key data has been encrypted. The front-end code can be deeply obfuscated to generate a front-end code file for the browser. In this way, only the secondary key is stored in the service, and for example, the "secondary key" is stored in slices. When using, assemble the slices first, then perform reverse decryption according to the corresponding encryption process, obtain the real key, and then perform business encryption. The decryption code is hidden through deep obfuscation, which greatly increases the difficulty of cracking. In addition, the secondary encryption process for the key is independent of the business code, and the business code introduces the decryption module as a dependency, so that the key encryption algorithm can be upgraded and updated at any time, such as key upgrade every fixed cycle. , which can further ensure the security of key storage.
下述为本公开装置实施例,可以用于执行本公开方法实施例。The following are the apparatus embodiments of the present disclosure, which can be used to execute the method embodiments of the present disclosure.
图4是根据一个示例性实施例示出的一种前端代码处理装置的框图,前端构建装置可以为服务器或服务器的一部分,也可以为终端或终端的一部分,前端构建装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,该前端代码处理装置包括:Fig. 4 is a block diagram of a front-end code processing apparatus according to an exemplary embodiment, the front-end construction apparatus may be a server or a part of a server, or a terminal or a part of a terminal, and the front-end construction apparatus may be implemented through software, hardware or two The combination of the two is realized as part or all of the electronic device. As shown in Figure 4, the front-end code processing device includes:
获取模块401,用于获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;an obtaining module 401, configured to obtain a secondary key, wherein the secondary key is generated according to a real key and a preset algorithm;
解密模块402,用于将所述二次密钥引入到前端代码中,并根据所述预设算法解密所述二次密钥得到真实密钥和版本号;Decryption module 402, for introducing the secondary key into the front-end code, and decrypting the secondary key according to the preset algorithm to obtain a real key and a version number;
加密模块403,用于若版本号校验通过,根据所述真实密钥对前端代码进行加密;The encryption module 403 is used for encrypting the front-end code according to the real key if the version number verification is passed;
混淆模块404,对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。The obfuscation module 404 deeply obfuscates the front-end code to generate a front-end code file used by the browser.
在一实施例中,所述装置还包括:生成模块,用于根据真实密钥、预设算法生成二次密钥,包括:In one embodiment, the apparatus further includes: a generating module configured to generate a secondary key according to the real key and a preset algorithm, including:
根据真实密钥生成多个混淆密钥并组成混淆密钥数组,其中,每个混淆密钥是由与真实密钥相同的字符集组成的字符串,并且长度与真实密钥相同;Generate multiple obfuscated keys according to the real key and form an obfuscated key array, wherein each obfuscated key is a string composed of the same character set as the real key, and the length is the same as the real key;
将真实密钥随机插入混淆密钥数组中,将真实密钥在混淆密钥数组中的位置记录为第一插入位置;Randomly insert the real key into the obfuscated key array, and record the position of the real key in the obfuscated key array as the first insertion position;
将预设的密钥版本号插入混淆密钥数组中,将密钥版本号在混淆密钥数组中的位置记录为第二插入位置;Insert the preset key version number into the obfuscated key array, and record the position of the key version number in the obfuscated key array as the second insertion position;
将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置;inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array;
以预设方式将混淆密钥数组转为字符串;Convert the obfuscated key array to a string by default;
使用预设加密算法对字符串进行加密,得到二次密钥。Use the preset encryption algorithm to encrypt the string to obtain the secondary key.
在一实施例中,将所述第一插入位置和第二插入位置插入到混淆密钥数组的预设位置,包括,将所述第一插入位置和第二插入位置插入到混淆密钥数组的最后面。In one embodiment, inserting the first insertion position and the second insertion position into a preset position of the obfuscated key array includes inserting the first insertion position and the second insertion position into the obfuscated key array. Last.
在一实施例中,生成二次密钥的模块独立于前端代码,以及前端代码将解密二次密钥得到真实密钥的解密模块作为依赖引入。In one embodiment, the module for generating the secondary key is independent of the front-end code, and the front-end code imports the decryption module that decrypts the secondary key to obtain the real key as a dependency.
图5是根据一示例性实施例示出的一种前端代码处理装置50的框图,该前端构建装置可以为服务器或服务器的一部分,也可以为终端或终端的一部分,前端代码处理装置包括:5 is a block diagram of a front-end code processing apparatus 50 according to an exemplary embodiment. The front-end construction apparatus may be a server or a part of a server, or a terminal or a part of a terminal, and the front-end code processing apparatus includes:
处理器501;
用于存储处理器501可执行指令的存储器502;
其中,处理器501被配置为:Wherein, the
获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;Obtain a secondary key, wherein the secondary key is generated according to the real key and a preset algorithm;
将所述二次密钥引入到前端代码中,并根据所述预设算法解密所述二次密钥得到真实密钥和版本号;Introducing the secondary key into the front-end code, and decrypting the secondary key according to the preset algorithm to obtain the real key and version number;
若版本号校验通过,根据所述真实密钥对前端代码中的待加密信息进行加密;If the version number verification is passed, encrypt the information to be encrypted in the front-end code according to the real key;
对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。Deeply obfuscate front-end code to generate front-end code files for browser use.
图6是根据一示例性实施例示出的一种用于前端代码处理装置600的框图,装置可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。Fig. 6 is a block diagram of a front-end
装置可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。The apparatus may include one or more of the following components: processing
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件502可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件508和处理组件602之间的交互。The
存储器604被配置未存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当装置600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。The I/
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如对讲机专网、WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。In an exemplary embodiment,
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。In an exemplary embodiment, there is also provided a non-transitory computer-readable storage medium including instructions, such as a
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置600的处理器执行时,使得装置600能够执行上述前端代码处理方法,所述方法包括:A non-transitory computer-readable storage medium, when the instructions in the storage medium are executed by the processor of the
获取二次密钥,其中,所述二次密钥是根据真实密钥、预设算法生成的;Obtain a secondary key, wherein the secondary key is generated according to the real key and a preset algorithm;
将所述二次密钥引入到前端代码中,并根据所述预设算法解密所述二次密钥得到真实密钥和版本号;Introducing the secondary key into the front-end code, and decrypting the secondary key according to the preset algorithm to obtain a real key and a version number;
若版本号校验通过,根据所述真实密钥对前端代码中的待加密信息进行加密;If the version number verification is passed, encrypt the information to be encrypted in the front-end code according to the real key;
对前端代码进行深度混淆以生成供浏览器使用的前端代码文件。Deeply obfuscate front-end code to generate front-end code files for browser use.
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。Other embodiments of the present disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or techniques in the technical field not disclosed by the present disclosure . The specification and examples are to be regarded as exemplary only, with the true scope and spirit of the disclosure being indicated by the following claims.
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。It is to be understood that the present disclosure is not limited to the precise structures described above and illustrated in the accompanying drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210238914.6A CN114826556B (en) | 2022-03-11 | 2022-03-11 | Front-end code processing method and device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210238914.6A CN114826556B (en) | 2022-03-11 | 2022-03-11 | Front-end code processing method and device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114826556A true CN114826556A (en) | 2022-07-29 |
| CN114826556B CN114826556B (en) | 2025-07-22 |
Family
ID=82529160
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210238914.6A Active CN114826556B (en) | 2022-03-11 | 2022-03-11 | Front-end code processing method and device |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114826556B (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119377920A (en) * | 2024-12-23 | 2025-01-28 | 湖北芯擎科技有限公司 | Method, device, equipment and medium for preventing reversal and abuse of HSM firmware |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7191335B1 (en) * | 1999-02-04 | 2007-03-13 | Canal + Technologies | Method and apparatus for encrypted transmission |
| CN102457522A (en) * | 2010-10-29 | 2012-05-16 | 奥多比公司 | Method and system for migrating content licenses |
| US20140157002A1 (en) * | 2011-12-21 | 2014-06-05 | Steven L. Grobman | Systems and methods for protecting symmetric encryption keys |
| KR20180007286A (en) * | 2016-07-12 | 2018-01-22 | 한국전자통신연구원 | Protection of Control Words in Conditional Access System |
| CN108390759A (en) * | 2018-03-21 | 2018-08-10 | 平安普惠企业管理有限公司 | Code encryption, decryption method, device, computer equipment and storage medium |
| CN112532379A (en) * | 2020-10-14 | 2021-03-19 | 厦门天锐科技股份有限公司 | File protection method and device |
| US20230269076A1 (en) * | 2020-09-01 | 2023-08-24 | Intel Corporation | Creating, using, and managing protected cryptography keys |
-
2022
- 2022-03-11 CN CN202210238914.6A patent/CN114826556B/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7191335B1 (en) * | 1999-02-04 | 2007-03-13 | Canal + Technologies | Method and apparatus for encrypted transmission |
| CN102457522A (en) * | 2010-10-29 | 2012-05-16 | 奥多比公司 | Method and system for migrating content licenses |
| US20140157002A1 (en) * | 2011-12-21 | 2014-06-05 | Steven L. Grobman | Systems and methods for protecting symmetric encryption keys |
| KR20180007286A (en) * | 2016-07-12 | 2018-01-22 | 한국전자통신연구원 | Protection of Control Words in Conditional Access System |
| CN108390759A (en) * | 2018-03-21 | 2018-08-10 | 平安普惠企业管理有限公司 | Code encryption, decryption method, device, computer equipment and storage medium |
| US20230269076A1 (en) * | 2020-09-01 | 2023-08-24 | Intel Corporation | Creating, using, and managing protected cryptography keys |
| CN112532379A (en) * | 2020-10-14 | 2021-03-19 | 厦门天锐科技股份有限公司 | File protection method and device |
Non-Patent Citations (1)
| Title |
|---|
| 彭关礼: "基于FPGA的AES算法硬件设计实现", 中国优秀硕士学位论文全文数据库 信息科技辑, 15 January 2019 (2019-01-15), pages 135 - 1069 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119377920A (en) * | 2024-12-23 | 2025-01-28 | 湖北芯擎科技有限公司 | Method, device, equipment and medium for preventing reversal and abuse of HSM firmware |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114826556B (en) | 2025-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220382884A1 (en) | Method and device for parsing shared password | |
| CN104125067B (en) | Account and token secret key binding method and device | |
| CN113259301A (en) | Account data sharing method and electronic equipment | |
| CN113343212B (en) | Device registration method and device, electronic device and storage medium | |
| CN110933109B (en) | Dynamic small program authentication method and device | |
| CN112243000B (en) | Application data processing method and device, computer equipment and storage medium | |
| JP6101863B2 (en) | Information transmission method, apparatus, program, and recording medium for voice service | |
| CN107766701B (en) | Electronic equipment, dynamic library file protection method and device | |
| CN113055169A (en) | Data encryption method and device, electronic equipment and storage medium | |
| CN111368232A (en) | Password sharing reflux method and device, electronic equipment and storage medium | |
| CN111917728A (en) | Password verification method and device | |
| CN109246110B (en) | Data sharing method and device and computer readable storage medium | |
| CN108900553B (en) | A communication method, apparatus and computer-readable storage medium | |
| CN111371563A (en) | Password verification method and device, electronic equipment and storage medium | |
| CN114221788B (en) | Login method, login device, electronic equipment and storage medium | |
| CN114826556B (en) | Front-end code processing method and device | |
| CN112434339A (en) | Information processing method and device | |
| CN114553552B (en) | Data encryption method and device, data decryption method and device and storage medium | |
| CN107302519B (en) | Identity authentication method and device for terminal equipment, terminal equipment and server | |
| CN115017521B (en) | Data processing method, device, system, electronic device and storage medium | |
| CN116015898A (en) | Information processing method, device, equipment, storage medium and product | |
| CN116418566A (en) | SM encryption algorithm-based image data storage method and device | |
| CN115996140A (en) | Access content acquisition method, device, device and storage medium | |
| CN114139182A (en) | Data storage method, data reading method, device and electronic device | |
| CN116264021A (en) | Method, device and storage medium for sharing digital car keys |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |