Engineering information data management method based on block chain

By adopting a blockchain-based decentralized method in engineering information data management, and using multi-node server verification and distributed encryption transmission, data security problems in traditional centralized management methods are solved, and higher risk resistance and data integrity protection are achieved.

CN119670110APending Publication Date: 2025-03-21FUZERUNSEN (WUHAN) TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411633135.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

The traditional centralized management method has security problems in engineering information data management and is vulnerable to cyber attacks, resulting in data being tampered with, lost or leaked, affecting project progress, quality and cost control.

Method used

The blockchain-based decentralized method is adopted to ensure the verification of the device information between each node server through multi-node server verification and distributed encryption transmission, and data encryption and decryption are carried out through public key encryption and private key decryption.

Benefits of technology

It improves the security of engineering information data management, avoids the risk of single point of failure, enhances the risk resistance, data immutability and transmission integrity, making engineering information data management more secure and reliable.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119670110A_ABST
    Figure CN119670110A_ABST
Patent Text Reader

Abstract

The invention provides an engineering information data management method based on a block chain, and relates to the technical field of block chains, the method is applied to a first server, and the method comprises the following steps: obtaining to-be-processed engineering information data; the synchronous broadcast is sent to the plurality of node servers, reply information sent by a second server in the plurality of node servers is received, and the reply information comprises a second public key of the second server and equipment information; respectively sending the equipment information of each second server to other second servers for verification; after the information that the plurality of second servers pass the verification of the equipment information is obtained, encrypting each piece of engineering information data by adopting a second public key to obtain encrypted data, so that the encrypted data can be decrypted by adopting a second private key corresponding to each second public key; and sending the encrypted data to the second server according to the communication address of each second server. According to the invention, the security of engineering information data management can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of blockchain, and specifically to an engineering information data management method based on blockchain. Background Art

[0002] Engineering information data refers to various data generated, collected and managed throughout the life cycle of an engineering project. These data include but are not limited to information generated during the project design, planning, construction, operation and maintenance phases. Specifically, engineering information data covers design drawings, 3D models, bills of materials, cost estimates, schedules, quality inspection records, safety management records, risk assessments, and contract documents. This type of data can exist in structured (such as databases) and unstructured (such as documents, pictures) forms, and is continuously updated as the project progresses.

[0003] At present, enterprises widely adopt digital and automation technologies to manage engineering information data, but security issues are still prominent. Since the traditional centralized management method relies on a single central management device, once the device is attacked or fails, the engineering information data is at risk of being tampered with, lost or even leaked. This centralized architecture is easy to become a target of cyber attacks, especially when the amount of engineering information data is large and the data chain is long, the vulnerability of the centralized system becomes more and more obvious. Once the core data is tampered with, it will directly affect the progress, quality and cost control of the project, and even pose a serious threat to the safety of the project. Therefore, it has become an important topic in the industry to improve the security management level of engineering information data and explore the application of emerging technologies such as decentralization or blockchain to achieve higher risk resistance and data integrity protection. Summary of the invention

[0004] The present application provides an engineering information data management method based on blockchain, which can improve the security of engineering information data management.

[0005] In a first aspect of the present application, a method for managing engineering information data based on blockchain is provided, the method being applied to a first server, the first server being any one of a plurality of node servers, the method comprising:

[0006] Obtain engineering information data to be processed;

[0007] Sending a synchronous broadcast to the plurality of node servers, and receiving a reply message sent by a second server among the plurality of node servers, wherein the reply message includes a second public key and device information of the second server;

[0008] Sending device information of each second server to other second servers for verification;

[0009] After obtaining information that the device information has been verified by multiple second servers, encrypt each of the project information data using the second public key to obtain encrypted data, so that the encrypted data can be decrypted using the second private key corresponding to each of the second public keys;

[0010] The encrypted data is sent to the second servers according to the communication addresses of the second servers.

[0011] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0012] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0013] Encrypting the first intermediate data using a first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using a first public key corresponding to the first private key;

[0014] The verification data is sent to the second server respectively.

[0015] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0016] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0017] Encrypting the first intermediate data using a first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using a first public key corresponding to the first private key;

[0018] The verification data is sent to the second server respectively.

[0019] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0020] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0021] Encrypting the first intermediate data using a first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using a first public key corresponding to the first private key;

[0022] The verification data is sent to the second server respectively.

[0023] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0024] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0025] Get the user's private key input by the user;

[0026] Encrypting the first intermediate data using a user's private key to obtain verification data, so that the user can decrypt the first intermediate data using a user's public key corresponding to the user's private key;

[0027] The verification data is sent to the second server respectively.

[0028] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0029] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0030] Get the user's private key input by the user;

[0031] Encrypting the first intermediate data using a user's private key to obtain verification data, so that the user can decrypt the first intermediate data using a user's public key corresponding to the user's private key;

[0032] The verification data is sent to the second server respectively.

[0033] On the basis of the above technical solution, preferably, after encrypting each of the engineering information data using the second public key to obtain the encrypted data, the method further includes:

[0034] Performing a hash operation on the engineering information data to obtain first intermediate data;

[0035] Get the user's private key input by the user;

[0036] Encrypting the first intermediate data using a user's private key to obtain verification data, so that the user can decrypt the first intermediate data using a user's public key corresponding to the user's private key;

[0037] The verification data is sent to the second server respectively.

[0038] In a second aspect of the present application, a blockchain-based engineering information data management device is provided, the device is a first server, the first server is any one of a plurality of node servers, the device includes an acquisition module, a sending module and an encryption module, wherein:

[0039] The acquisition module is used to acquire the engineering information data to be processed;

[0040] The sending module is used to send a synchronous broadcast to the multiple node servers, and receive a reply message sent by a second server among the multiple node servers, wherein the reply message includes a second public key and device information of the second server;

[0041] The sending module is used to send the device information of each second server to other second servers for verification;

[0042] The encryption module is used to, after obtaining information that the device information has been verified by multiple second servers, respectively use the second public key to encrypt each of the project information data to obtain encrypted data, so that the encrypted data can be decrypted using the second private key corresponding to each of the second public keys;

[0043] The sending module is used to send the encrypted data to the second servers according to the communication addresses of the second servers.

[0044] On the basis of the above technical solution, preferably, the encryption module is used to perform a hash operation on the engineering information data to obtain the first intermediate data;

[0045] The encryption module is used to encrypt the first intermediate data using the first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using the first public key corresponding to the first private key;

[0046] The sending module is used to send the verification data to the second server respectively.

[0047] On the basis of the above technical solution, preferably, the encryption module is used to perform a hash operation on the engineering information data to obtain the first intermediate data;

[0048] The encryption module is used to encrypt the first intermediate data using the first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using the first public key corresponding to the first private key;

[0049] The sending module is used to send the verification data to the second server respectively.

[0050] On the basis of the above technical solution, preferably, the acquisition module is used to obtain a decryption verification request for the encrypted data input by a user, and extract the stored encrypted data and the verification data;

[0051] The acquisition module is used to acquire the second private key input by the user;

[0052] The encryption module is used to decrypt the encrypted data using the second private key to obtain the data to be verified;

[0053] The encryption module is used to perform a hash operation on the data to be verified to obtain an intermediate operation result;

[0054] The encryption module is used to decrypt the verification data using the first public key to obtain the first intermediate data;

[0055] The encryption module is used to compare the intermediate operation result with the first intermediate data. If it is determined that the intermediate operation result is consistent with the first intermediate data, the data to be verified is determined to be the engineering information data, and the engineering information data is displayed to the user.

[0056] On the basis of the above technical solution, preferably, the encryption module is used to perform a hash operation on the engineering information data to obtain the first intermediate data;

[0057] The acquisition module is used to acquire a user private key input by a user;

[0058] The encryption module is used to encrypt the first intermediate data using a user's private key to obtain verification data, so that the user can decrypt the first intermediate data using a user public key corresponding to the user private key;

[0059] The sending module is used to send the verification data to the second server respectively.

[0060] On the basis of the above technical solution, preferably, the encryption module is used to generate a set of random codes, and the random codes include multiple numbers and multiple letters;

[0061] The acquisition module is used to acquire the device identification of the second server;

[0062] The encryption module is used to insert the plurality of random codes into the device identification to obtain the second private key;

[0063] The encryption module is used to generate the second public key according to the second private key by adopting an asymmetric encryption algorithm.

[0064] On the basis of the above technical solution, preferably, the encryption module is used to perform a hash operation on the user's identity information code to obtain a hash value;

[0065] The encryption module is used to set the hash value to the user private key;

[0066] The encryption module is used to generate the user public key according to the user private key by adopting an asymmetric encryption algorithm.

[0067] In the third aspect of the present application, an electronic device is provided, including a processor, a memory, a user interface and a network interface, the memory is used to store instructions, the user interface and the network interface are both used to communicate with other devices, and the processor is used to execute the instructions stored in the memory so that the electronic device executes any one of the methods described above.

[0068] In a fourth aspect of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores instructions, and when the instructions are executed, any of the methods described above is executed.

[0069] In summary, one or more technical solutions provided in the embodiments of the present application have at least the following technical effects or advantages:

[0070] 1. This application effectively improves the security of data management through decentralization, multi-node verification and distributed encrypted transmission. Specifically, the engineering information data is verified between each node server to ensure the credibility of all nodes; after that, the data is encrypted and distributed and stored through the public key of each node, and only the node holding the corresponding private key can decrypt the data. This distributed encryption and storage method avoids the risk of single point failure in traditional centralized management. Even if a node is attacked or fails, the data of other nodes remains intact. In the end, this architecture not only enhances risk resistance, but also ensures the immutability of data and the integrity of transmission, making engineering information data management safer and more reliable.

[0071] 2. This application generates verification data by encrypting the hash value of the engineering information data (i.e., the first intermediate data), and sends the verification data to each second server, thereby enhancing the verification effect of data integrity and authenticity. Specifically, each second server can use the first public key to decrypt the verification data and obtain the original hash value, thereby verifying that the received engineering information data has not been tampered with during transmission and storage. This process ensures the consistency and non-tamperability of the data, making data verification more reliable, while enhancing the overall security of the system and effectively preventing data forgery and transmission risks.

[0072] 3. Let the second server perform hash operations on the decrypted data and compare it with the verification data to verify the integrity and authenticity of the engineering information data. After decrypting and verifying the consistency of the data, the second server sends synchronization information to the first server and synchronizes after confirming that the data is correct. This process ensures that the data in transmission and storage has not been tampered with, and verifies that the data does come from the authorized first server, thereby building a trusted data synchronization mechanism, improving the security and reliability of data management, and effectively preventing the risk of data forgery and tampering. BRIEF DESCRIPTION OF THE DRAWINGS

[0073] Figure 1 It is a flowchart of a method for managing engineering information data based on blockchain disclosed in an embodiment of the present application;

[0074] Figure 2 This is a schematic diagram of a connection of multiple node servers disclosed in an embodiment of the present application;

[0075] Figure 3 It is a module schematic diagram of a blockchain-based engineering information data management device disclosed in an embodiment of the present application;

[0076] Figure 4 It is a structural schematic diagram of an electronic device disclosed in an embodiment of the present application.

[0077] Explanation of the reference numerals: 301, acquisition module; 302, sending module; 303, encryption module; 401, processor; 402, communication bus; 403, user interface; 404, network interface; 405, memory. DETAILED DESCRIPTION

[0078] In order to enable technicians in this field to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below in conjunction with the drawings in the embodiments of this specification. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments.

[0079] In the description of the embodiments of the present application, words such as "for example" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "for example" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "for example" or "for example" is intended to present related concepts in a specific way.

[0080] In the description of the embodiments of the present application, the meaning of the term "multiple" refers to two or more. For example, multiple systems refer to two or more systems, and multiple screen terminals refer to two or more screen terminals. In addition, the terms "first" and "second" are used for descriptive purposes only and cannot be understood as indicating or implying relative importance or implicitly indicating the indicated technical features. Thus, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. The terms "include", "comprise", "have" and their variations all mean "including but not limited to", unless otherwise specifically emphasized.

[0081] Engineering information data covers the design, construction, operation and maintenance information of each stage of the engineering project, in various forms and continuously updated. Although enterprises generally adopt digital management, the centralized approach has security risks. Once the central equipment is attacked, the data is at risk of being tampered with or lost, which in turn affects the project progress, quality and safety. Therefore, improving the level of data security management and exploring decentralized or blockchain technology to enhance risk resistance and data integrity have become important directions for the development of the industry.

[0082] This embodiment discloses a method for managing engineering information data based on blockchain. Figure 1 , including the following steps S110-S150:

[0083] S110, obtaining engineering information data to be processed.

[0084] The embodiment of the present application discloses a method for managing engineering information data based on blockchain, which is applied to a first server, which is any one of a plurality of node servers, and the node server includes but is not limited to electronic devices such as mobile phones, tablet computers, wearable devices, PCs (Personal Computers), etc., and can also be a background server running a method for managing engineering information data based on blockchain. The node server can be implemented as an independent server or a server cluster composed of multiple servers.

[0085] Reference Figure 2 , multiple node servers are interconnected to communicate with each other through wired or wireless communications. This communication can use reliable protocols, such as Transmission Control Protocol / Internet Protocol (TCP / IP). To achieve data transmission and synchronization between each other. The node server is a basic component of the blockchain system network, responsible for maintaining and operating the network. In the system, the node server is connected to the blockchain network through the Internet and assumes a variety of key responsibilities, including data transmission, data storage, and data update.

[0086] The management of engineering information data is crucial to the success of a project. Through effective data collection and management, the project team can achieve reasonable allocation of resources, fine control of the construction process, effective monitoring of costs, and early warning of risks. This type of data can also support the digital and intelligent application of engineering projects, such as collaborative design based on building information modeling (BIM), real-time monitoring of construction progress, and intelligent operation and maintenance. The acquisition and management of pending engineering information data requires the comprehensive use of data collection, processing, storage, and analysis technologies to achieve comprehensive monitoring and management of all stages of the project.

[0087] S120, sending a synchronous broadcast to multiple node servers, and receiving a reply message sent by a second server among the multiple node servers.

[0088] During the system initialization phase, each node server verifies the identity of each other through a secure trust mechanism. The first server generates a synchronization request message, which contains the synchronization request information of the server. The synchronization request can be transmitted through a TLS / SSL encrypted channel to ensure the integrity and confidentiality of the broadcast information during the sending process. The first server sends the synchronization request message to all node servers in the network. The broadcast can be implemented through a message queue (such as RabbitMQ, Kafka) or a multicast protocol (such as UDP multicast) to ensure that all nodes can receive the synchronization request.

[0089] After each node server receives the synchronization request, the online second server in the node server first verifies the broadcast message, including verifying the device information of the main server, etc., to ensure that the request comes from a legitimate node server. After the verification is passed, the second server generates a reply message, which includes the second public key of the second server and device information (such as server ID, operating system version, device configuration), and finally the second server sends the reply message to the first server.

[0090] In a possible implementation, before sending a synchronous broadcast to multiple node servers and receiving a reply message sent by a second server among the multiple node servers, the method also includes: generating a set of random codes, the random codes comprising multiple numbers and multiple letters; obtaining a device identifier of the second server; inserting multiple random codes into the device identifier to obtain a second private key; and generating a second public key based on the second private key using an asymmetric encryption algorithm.

[0091] Specifically, determine the length and composition of the random code (such as a mixture of 6 numbers and 6 letters, or other customized combinations). You can randomly select a character set (such as AZ, az, 0-9) to generate a random string. You can use a secure random number generator (such as Python's secrets library or Java's SecureRandom class) to generate a set of random codes to ensure the uniqueness and unpredictability of the code.

[0092] Define the specific way to insert the random code into the device identification, such as inserting it at a specific index position, or inserting the random code into the device identification in a scattered manner according to a certain rule. The device identification is usually the unique ID of the device (such as MAC address, UUID, serial number, etc.). According to the rules, the random code is inserted into the device identification to generate a unique private key. The device identification after the random code is inserted is used as the base string of the second private key for subsequent asymmetric encryption key generation.

[0093] Use an asymmetric encryption algorithm to generate a public key and a private key pair. Common asymmetric encryption algorithms include RSA and ECDSA. RSA is suitable for most general scenarios, while ECC (elliptic curve cryptography) is more lightweight and suitable for performance-sensitive applications. Use an encryption library (such as Python's cryptography library or Java's java.security.KeyPairGenerator) to generate a key pair based on the second private key, where the second private key can be used as a seed for key generation or directly generate a private key. Serialize the generated second private key and second public key and store them in a secure storage area to ensure that the keys are not tampered with or leaked. For example, the private key can be encrypted and stored in PEM format, and the public key can be exported in PEM format for access by other nodes.

[0094] S130, sending the device information of each second server to other second servers for verification.

[0095] The present application discloses a multi-node server mutual authentication mechanism that improves the security and data consistency of the entire system and realizes device information authentication between servers. Each server can not only receive authentication requests from other servers, but also authenticate their information to ensure the reliability of device information.

[0096] The first server receives reply information from multiple second servers, and sends the device information of each second server to other second servers for verification. For example, the second servers include server 1, server 2, server 3 and server 4, then the first server sends the device information of server 1 to server 2, server 3 and server 4 for verification, and the first server sends the device information of server 2 to server 1, server 3 and server 4 for verification, and so on, to achieve mutual verification of multi-node servers.

[0097] After any second server receives the device information, it compares it with the device information pre-stored in the data to determine whether the device information is registered device information. If the verification is successful, it records the success and continues other operations; if the verification fails, it generates a verification failure log and forwards the verification failure log to other node servers.

[0098] S140, after obtaining information that the device information has been verified by multiple second servers, encrypt each project information data using the second public key to obtain encrypted data.

[0099] After the second server verifies the device information, it sends the verification information to the first server. The first server compares the number of received verification information with the number of sent device information. If the two numbers are consistent, the verification of the second server is passed. Furthermore, the first server uses the second public key of each second server to encrypt the project information data.

[0100] Each second server that has passed the verification should have its own independent second public key, which can be used for data encryption, and only the private key corresponding to the second public key can decrypt the encrypted data. In this way, each second server can obtain a copy of the encrypted data encrypted by its own public key, and only each second server can decrypt the encrypted data using its own private key.

[0101] Select an encryption algorithm Select an algorithm suitable for asymmetric encryption (such as RSA or ECC). RSA is more commonly used, but has greater restrictions on key length and encrypted data size, while ECC can encrypt smaller amounts of data and has better performance.

[0102] In a possible implementation, after each engineering information data is encrypted using the second public key to obtain encrypted data, the method further includes: performing a hash operation on the engineering information data to obtain first intermediate data; encrypting the first intermediate data using the first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using the first public key corresponding to the first private key; and sending the verification data to the second server respectively.

[0103] Specifically, after the encryption of the engineering information data is completed, verification data is generated through the following steps and sent to each second server, so as to subsequently verify the integrity and authenticity of the engineering information data.

[0104] First, select a suitable hash algorithm (such as SHA-256 or SHA-512) to perform a hash operation on the engineering information data. SHA-256 is a commonly used and highly secure algorithm suitable for most application scenarios. Input the encrypted engineering information data into the hash algorithm to calculate a unique hash value. This hash value is the first intermediate data, which can represent the uniqueness and integrity of the engineering information data.

[0105] The first private key of the first server is extracted from the secure storage and used to encrypt the first intermediate data. The private key should be stored in a protected environment and can only be accessed by the first server. Use an asymmetric encryption algorithm (such as RSA or ECC) to encrypt the first intermediate data (hash value) using the first private key. The ciphertext generated by this encryption process is the verification data. The verification data is equivalent to a "signature" of the first server for the integrity of the engineering information data. Only the recipient (i.e., the second server) with the corresponding first public key can decrypt the first intermediate data and verify the data integrity.

[0106] Finally, the encrypted verification data is sent to each second server one by one, and it is ensured that the data received by each server only contains the verification information related to it. This sending process can be completed through an encrypted API request or a secure message queue (such as Kafka).

[0107] In a possible implementation, after each engineering information data is encrypted using the second public key to obtain encrypted data, the method also includes: performing a hash operation on the engineering information data to obtain first intermediate data; obtaining a user private key input by a user; encrypting the first intermediate data using the user's user private key to obtain verification data, so that the user can use the user public key corresponding to the user private key to decrypt the first intermediate data; and sending the verification data to the second server respectively.

[0108] Specifically, after the encryption of the engineering information data is completed, the data integrity can also be verified using the user's private key. This process ensures that the data cannot be tampered with and can be verified, allowing the user to decrypt and verify the integrity of the data using the user's public key corresponding to the user's private key.

[0109] Select a suitable hash algorithm (such as SHA-256 or SHA-512) to perform hash operation on the engineering information data. SHA-256 is a commonly used hash algorithm with high security. Input the original engineering information data into the hash algorithm and calculate a unique hash value. This hash value is the first intermediate data, which represents the integrity and uniqueness of the data.

[0110] The user is required to enter his or her private key, or the private key is read from the secure storage authorized by the user. The user's private key is only temporarily stored in the system for this operation and should be cleared in time after the encryption is completed. Select an asymmetric encryption algorithm (such as RSA) to encrypt the first intermediate data. Use the user's private key to encrypt the first intermediate data (i.e., the hash value) to generate verification data. The verification data is equivalent to a "signature" for the data, and any recipient with the user's public key can decrypt and verify the integrity of the data. The encrypted verification data can not only verify the integrity of the data, but also serve as a digital signature for the data, proving that the data is indeed encrypted and generated by a specific user.

[0111] The encrypted verification data is sent to each second server one by one, ensuring that the verification data received by each server contains the corresponding engineering information data identifier, so that the second server can associate the correct data during verification.

[0112] In a possible implementation, before obtaining the user private key input by the user, the method further includes: performing a hash operation on the user's identity information code to obtain a hash value; setting the hash value as the user private key; and generating a user public key based on the user private key using an asymmetric encryption algorithm.

[0113] Specifically, the user's private key is generated by performing a hash operation on the user's identity information code, and then the user's public key is generated through an asymmetric encryption algorithm. This method ensures the uniqueness of the private key, and realizes data encryption and user identity authentication through the generation of a public-private key pair.

[0114] First, determine the source and composition of the user's identity information code. The identity information code can be a unique identifier for the user, such as a user ID, user name, email address, or other unique string that can identify the user. Then select a secure hash algorithm (such as SHA-256 or SHA-512) to hash the identity information code. SHA-256 is a commonly used and relatively secure algorithm that can generate a unique hash value. Enter the user's identity information code into the hash algorithm to generate a unique hash value. The hash value is used to generate the user's private key to ensure the uniqueness and unpredictability of the private key.

[0115] If the generated hash value needs further processing (such as fixed length or specific format), the hash value can be converted into the private key format required by the asymmetric encryption algorithm. For example, in some scenarios, the hash value may need to be converted into an integer form or a binary number of a specific length to comply with the algorithm specification. Finally, the key generator of the asymmetric encryption algorithm is used to generate the corresponding user public key based on the user private key. The generated public key will serve as the basis for subsequent data encryption and identity authentication.

[0116] S150: Send the encrypted data to the second servers according to the communication addresses of the second servers.

[0117] The first server uses the second public key of each second server to encrypt the project information data to obtain encrypted data, and then needs to send the corresponding encrypted data to the second server, so that each second server can use its own second private key to decrypt.

[0118] The first server assigns a unique communication address (such as IP address and port) to each second server and records these addresses in the system. Ensure that each communication address is accurate and reachable. Based on the communication address of the second server, the first server establishes a connection with each target server. On the established secure connection, encrypted data is sent to the target server.

[0119] In a possible implementation, after sending the encrypted data to the second server according to the communication address of each second server, the method also includes: receiving synchronization information for the encrypted data sent by the second server, wherein the second server uses the second private key to decrypt the encrypted data, and performs a hash operation on the decryption result to obtain an operation result, and at the same time uses the first public key to decrypt the verification data to obtain second intermediate data, compares the operation result with the second intermediate data, and if it is determined that the operation result is consistent with the second intermediate data, synchronizes the encrypted data and sends the synchronization information to the second server.

[0120] Specifically, after the first server sends encrypted data to each second server, each second server will decrypt and verify the integrity of the received encrypted data, and send synchronization information to the first server after the verification is passed.

[0121] Each second server receives encrypted data from the first server and records the metadata of the data (such as data identification, timestamp, etc.) for subsequent processing. The second server uses its private key to decrypt the received encrypted data to obtain the engineering information data. Private key decryption ensures that only the second server holding the private key can read the data content, thereby ensuring the confidentiality of the data. If an exception occurs during the decryption process (such as a private key error or data corruption), the error is recorded and the abnormal status is fed back to the first server.

[0122] After the decryption is successful, a hash algorithm consistent with the first server (such as SHA-256) is selected to perform a hash operation on the decrypted engineering information data to generate a unique hash value. This hash value is called the "operation result". When receiving the encrypted data, the second server will synchronously receive the verification data provided by the first server, which is a hash value encrypted with the user's private key. The second server uses the public key of the first server to decrypt the verification data and obtain the "second intermediate data" generated by the first server (that is, the hash value of the original engineering information data). The decryption process ensures that the source of the verification data is credible and ensures the authenticity of the identity of the first server.

[0123] Compare the calculation result calculated by the second server with the second intermediate data decrypted from the verification data of the first server. If the two hash values ​​are the same, it means that the received encrypted data is consistent with the original data of the first server, and the data transmission is complete and has not been tampered with. If the hash values ​​are inconsistent, it means that the data may have been tampered with during the transmission or decryption process, or the verification data is incorrect. If the comparison is consistent, the second server stores the decrypted engineering information data in a designated secure location and marks it as synchronized. Data synchronization can trigger subsequent processing of the data or make it accessible in the system. If the comparison is inconsistent, the second server marks the data as "unsynchronized" and records the abnormal situation so that the administrator can review and take appropriate measures.

[0124] In a possible implementation, after sending the encrypted data to the second server according to the communication address of each second server, the method also includes: obtaining a decryption verification request for the encrypted data input by the user, extracting the stored encrypted data and verification data; obtaining a second private key input by the user; decrypting the encrypted data using the second private key to obtain the data to be verified; performing a hash operation on the data to be verified to obtain an intermediate operation result; decrypting the verification data using the first public key to obtain the first intermediate data; comparing the intermediate operation result with the first intermediate data, and if it is determined that the intermediate operation result is consistent with the first intermediate data, then determining that the data to be verified is engineering information data, and displaying the engineering information data to the user.

[0125] Specifically, the user inputs a decryption verification request through the interface, and the request includes a requirement to view and verify the encrypted data. After receiving the user's decryption verification request, the first server extracts the relevant encrypted data and verification data from the storage. The user is then prompted to enter the corresponding second private key. The private key is used to decrypt the encrypted data, so the security of the private key input must be ensured. The stored encrypted data is decrypted using the second private key. This process restores the encrypted engineering information data to the original data, i.e., the "data to be verified." If the decryption fails (such as a decryption error caused by a private key mismatch), an error prompt is returned and log information of the decryption failure is recorded.

[0126] Use a hash algorithm consistent with the encryption process (such as SHA-256) to perform a hash operation on the data to be verified to generate a unique hash value. The hash value generated by the hash operation is called the "intermediate operation result". This hash value can uniquely represent the content of the data to be verified. Use the first public key to decrypt the verification data to obtain the first intermediate data. The verification data is a hash value encrypted by the first server using the private key, and the original hash value (i.e., the first intermediate data) is obtained after decryption. The use of the first public key ensures the trusted source of the verification data and prevents the verification data from being tampered with during transmission and storage.

[0127] Compare the intermediate operation result (hash value of the data to be verified) with the first intermediate data (the original hash value generated by the first server). If the two hash values ​​are the same, it means that the content of the data to be verified is complete and has not been tampered with. If the hash values ​​are inconsistent, it means that the data may have been tampered with during transmission or storage, or the verification data does not match. After the comparison is successful, mark the data to be verified as real engineering information data. Display the decrypted engineering information data to the user so that the user can view the data content. Ensure that the displayed data has been verified to prevent the leakage of unverified data.

[0128] This embodiment also discloses a blockchain-based engineering information data management device, the device is a first server, the first server is any one of a plurality of node servers, refer to Figure 3 The device includes an acquisition module 301, a sending module 302 and an encryption module 303, wherein:

[0129] The acquisition module 301 is used to acquire the engineering information data to be processed.

[0130] The sending module 302 is used to send a synchronous broadcast to multiple node servers, and receive a reply message sent by a second server among the multiple node servers, where the reply message includes a second public key and device information of the second server.

[0131] The sending module 302 is used to send the device information of each second server to other second servers for verification.

[0132] The encryption module 303 is used to encrypt each engineering information data with the second public key after obtaining the information that the device information has been verified by multiple second servers to obtain encrypted data, so that the encrypted data can be decrypted using the second private key corresponding to each second public key.

[0133] The sending module 302 is used to send the encrypted data to the second servers according to the communication addresses of the second servers.

[0134] In a possible implementation, the encryption module 303 is used to perform a hash operation on the engineering information data to obtain first intermediate data.

[0135] The encryption module 303 is used to encrypt the first intermediate data using the first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using the first public key corresponding to the first private key.

[0136] The sending module 302 is used to send the verification data to the second server respectively.

[0137] In a possible implementation, the encryption module 303 is used to perform a hash operation on the engineering information data to obtain first intermediate data.

[0138] The encryption module 303 is used to encrypt the first intermediate data using the first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using the first public key corresponding to the first private key.

[0139] The sending module 302 is used to send the verification data to the second server respectively.

[0140] In a possible implementation, the acquisition module 301 is used to acquire a decryption verification request for encrypted data input by a user, and extract the stored encrypted data and verification data.

[0141] The acquisition module 301 is used to acquire a second private key input by a user.

[0142] The encryption module 303 is used to decrypt the encrypted data using the second private key to obtain the data to be verified.

[0143] The encryption module 303 is used to perform a hash operation on the data to be verified to obtain an intermediate operation result.

[0144] The encryption module 303 is used to decrypt the verification data using the first public key to obtain the first intermediate data.

[0145] The encryption module 303 is used to compare the intermediate operation result with the first intermediate data. If it is determined that the intermediate operation result is consistent with the first intermediate data, the data to be verified is determined to be engineering information data, and the engineering information data is displayed to the user.

[0146] In a possible implementation, the encryption module 303 is used to perform a hash operation on the engineering information data to obtain first intermediate data.

[0147] The acquisition module 301 is used to acquire the user private key input by the user.

[0148] The encryption module 303 is used to encrypt the first intermediate data using the user's private key to obtain verification data, so that the user can decrypt the first intermediate data using the user's public key corresponding to the user's private key.

[0149] The sending module 302 is used to send the verification data to the second server respectively.

[0150] In a possible implementation, the encryption module 303 is used to generate a set of random codes, where the random codes include multiple numbers and multiple letters.

[0151] The acquisition module 301 is used to acquire the device identification of the second server.

[0152] The encryption module 303 is used to insert multiple random codes into the device identification to obtain a second private key.

[0153] The encryption module 303 is used to generate a second public key according to the second private key by adopting an asymmetric encryption algorithm.

[0154] In a possible implementation, the encryption module 303 is used to perform a hash operation on the user's identity information code to obtain a hash value.

[0155] The encryption module 303 is used to set the hash value as the user's private key.

[0156] The encryption module 303 is used to generate a user public key according to the user private key by using an asymmetric encryption algorithm.

[0157] It should be noted that: when the device provided in the above embodiment realizes its function, only the division of the above functional modules is used as an example. In actual application, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0158] This embodiment also discloses an electronic device, referring to Figure 4The electronic device may include: at least one processor 401 , at least one communication bus 402 , a user interface 403 , a network interface 404 , and at least one memory 405 .

[0159] The communication bus 402 is used to realize the connection and communication between these components.

[0160] The user interface 403 may include a display screen (Display) and a camera (Camera), and the optional user interface 403 may also include a standard wired interface and a wireless interface.

[0161] The network interface 404 may optionally include a standard wired interface or a wireless interface (such as a WI-FI interface).

[0162] Among them, the processor 401 may include one or more processing cores. The processor 401 uses various interfaces and lines to connect various parts in the entire server, and executes various functions of the server and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 405, and calling data stored in the memory 405. Optionally, the processor 401 can be implemented in at least one hardware form of digital signal processing (Digital Signal Processing, DSP), field programmable gate array (Field-Programmable Gate Array, FPGA), and programmable logic array (Programmable Logic Array, PLA). The processor 401 can integrate one or more combinations of a central processing unit (Central Processing Unit, CPU), a graphics processing unit (Graphics Processing Unit, GPU) and a modem. Among them, the CPU mainly processes the operating system, user interface and application programs; the GPU is responsible for rendering and drawing the content to be displayed on the display screen; the modem is used to process wireless communications. It can be understood that the above-mentioned modem may not be integrated into the processor 401, and it can be implemented by a single chip.

[0163] Among them, the memory 405 may include a random access memory (RAM) or a read-only memory (Read-Only Memory). Optionally, the memory includes a non-transitory computer-readable storage medium. The memory 405 can be used to store instructions, programs, codes, code sets or instruction sets. The memory 405 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playback function, an image playback function, etc.), instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area may store data involved in the above-mentioned various method embodiments, etc. The memory 405 may also be at least one storage device located away from the aforementioned processor 401. The memory 405 as a computer storage medium may include an operating system, a network communication module, a user interface 403 module, and an application program for a blockchain-based engineering information data management method.

[0164] exist Figure 4 In the electronic device shown, the user interface 403 is mainly used to provide an input interface for the user and obtain data input by the user; and the processor 401 can be used to call an application program stored in the memory 405 for a blockchain-based engineering information data management method. When executed by one or more processors 401, the electronic device executes one or more methods in the above-mentioned embodiments.

[0165] It should be noted that, for the aforementioned method embodiments, for the sake of simplicity, they are all described as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the order of the actions described, because according to the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required for the present application.

[0166] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0167] In the several embodiments provided in this application, it should be understood that the disclosed devices can be implemented in other ways. For example, the device embodiments described above are only schematic, such as the division of units, which is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some service interfaces, and the indirect coupling or communication connection of devices or units can be electrical or other forms.

[0168] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0169] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0170] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a memory 405, including a number of instructions for a computer device (which can be a personal computer, server or network device, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned memory 405 includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk.

[0171] The present application also discloses a computer-readable storage medium, wherein the computer-readable storage medium stores instructions. When executed by one or more processors 401, the electronic device executes one or more of the methods described in the above embodiments.

[0172] The above is only an exemplary embodiment of the present disclosure, and the scope of the present disclosure cannot be limited thereto. That is, any equivalent changes and modifications made according to the teachings of the present disclosure are still within the scope of the present disclosure. After considering the disclosure of the specification and the truth of practice, it will be easy for those skilled in the art to think of other embodiments of the present disclosure. This application is intended to cover any modification, use or adaptation of the present disclosure, which follows the general principles of the present disclosure and includes common knowledge or customary technical means in the technical field that are not recorded in the present disclosure. The description and examples are regarded as exemplary only, and the scope and spirit of the present disclosure are defined by the claims.

Claims

1. A method for managing engineering information data based on blockchain, characterized in that: The method is applied to a first server, where the first server is any one of a plurality of node servers, and the method includes: Obtain engineering information data to be processed; Sending a synchronous broadcast to the plurality of node servers, and receiving a reply message sent by a second server among the plurality of node servers, wherein the reply message includes a second public key and device information of the second server; Sending device information of each second server to other second servers for verification; After obtaining information that the device information has been verified by multiple second servers, encrypt each of the project information data using the second public key to obtain encrypted data, so that the encrypted data can be decrypted using the second private key corresponding to each of the second public keys; The encrypted data is sent to the second servers according to the communication addresses of the second servers.

2. According to the method for managing engineering information data based on blockchain in claim 1, it is characterized in that: After the second public key is used to encrypt each of the project information data to obtain encrypted data, the method further includes: Performing a hash operation on the engineering information data to obtain first intermediate data; Encrypting the first intermediate data using a first private key of the first server to obtain verification data, so that the first intermediate data can be decrypted using a first public key corresponding to the first private key; The verification data is sent to the second server respectively.

3. According to a blockchain-based engineering information data management method according to claim 2, it is characterized in that: After sending the encrypted data to the second servers according to the communication addresses of the second servers, the method further includes: Receive synchronization information for the encrypted data sent by the second server, wherein the second server uses the second private key to decrypt the encrypted data, and performs a hash operation on the decryption result to obtain an operation result, and simultaneously uses the first public key to decrypt the verification data to obtain second intermediate data, compare the operation result with the second intermediate data, and if it is determined that the operation result is consistent with the second intermediate data, synchronize the encrypted data and send the synchronization information to the second server.

4. According to a blockchain-based engineering information data management method according to claim 2, it is characterized in that: After sending the encrypted data to the second servers according to the communication addresses of the second servers, the method further includes: Obtaining a decryption verification request for the encrypted data input by a user, and extracting the stored encrypted data and the verification data; Obtaining the second private key input by the user; Decrypting the encrypted data using the second private key to obtain data to be verified; Performing a hash operation on the data to be verified to obtain an intermediate operation result; Decrypting the verification data using the first public key to obtain the first intermediate data; The intermediate calculation result is compared with the first intermediate data. If it is determined that the intermediate calculation result is consistent with the first intermediate data, the data to be verified is determined to be the engineering information data, and the engineering information data is displayed to the user.

5. According to the blockchain-based engineering information data management method of claim 1, it is characterized in that: After the second public key is used to encrypt each of the project information data to obtain encrypted data, the method further includes: Performing a hash operation on the engineering information data to obtain first intermediate data; Get the user's private key input by the user; Encrypting the first intermediate data using a user's private key to obtain verification data, so that the user can decrypt the first intermediate data using a user's public key corresponding to the user's private key; The verification data is sent to the second server respectively.

6. According to the blockchain-based engineering information data management method of claim 1, it is characterized in that: Before sending the synchronous broadcast to the plurality of node servers and receiving the reply information sent by the second server among the plurality of node servers, the method further includes: Generate a set of random codes, wherein the random codes include a plurality of numbers and a plurality of letters; Obtaining a device identifier of the second server; Inserting a plurality of the random codes into the device identification to obtain the second private key; The second public key is generated according to the second private key using an asymmetric encryption algorithm.

7. According to the blockchain-based engineering information data management method of claim 5, it is characterized in that: Before obtaining the user private key input by the user, the method further includes: Performing a hash operation on the user's identity information code to obtain a hash value; Setting the hash value to the user private key; The user public key is generated according to the user private key using an asymmetric encryption algorithm.

8. An engineering information data management device based on blockchain, characterized in that: The device is a first server, the first server is any one of a plurality of node servers, and the device comprises an acquisition module (301), a sending module (302) and an encryption module (303), wherein: The acquisition module (301) is used to acquire engineering information data to be processed; The sending module (302) is used to send a synchronous broadcast to the plurality of node servers, and receive a reply message sent by a second server among the plurality of node servers, wherein the reply message includes a second public key and device information of the second server; The sending module (302) is used to send the device information of each second server to other second servers for verification; The encryption module (303) is used to, after obtaining information that the device information has been verified by multiple second servers, encrypt each of the project information data using the second public key to obtain encrypted data, so that the encrypted data can be decrypted using the second private key corresponding to each of the second public keys; The sending module (302) is used to send the encrypted data to the second servers according to the communication addresses of the respective second servers.

9. An electronic device, characterized in that: The electronic device comprises a processor (401), a communication bus (402), a memory (405), a user interface (403), a network interface (404) and a memory (405), wherein the memory (405) is used to store instructions, the user interface (403) and the network interface (404) are both used to communicate with other devices, and the processor (401) is used to execute the instructions stored in the memory (405) so that the electronic device executes the method according to any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, and when the instructions are executed, the method according to any one of claims 1 to 7 is performed.