Software license management method and related apparatus

By implementing digital signature verification and two-way binding relationship verification in the software license management system, combined with offline tolerance periods and license type differentiation, the system addresses the security deficiencies and offline usage restrictions of existing systems, achieving a flexible authorization mechanism and an improved user experience.

CN122153850APending Publication Date: 2026-06-05GUANGZHOU ZHIYONGKAIWU ARTIFICIAL INTELLIGENCE TECHNOLOGY CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GUANGZHOU ZHIYONGKAIWU ARTIFICIAL INTELLIGENCE TECHNOLOGY CO LTD
Filing Date
2026-02-12
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

Existing software license management systems suffer from insufficient security, limited offline use, and a lack of flexible authorization mechanisms, making it difficult to meet the needs of different customers and deployment environments. They are also complex to manage and provide a poor user experience.

Method used

By retrieving digitally signed license files and environment contract files from the local file directory when the application client starts, verifying the two-way binding relationship, setting the validity period and offline tolerance period, and combining asymmetric key signing and base64 encoding, the security and integrity of file transfer are ensured, and permissions are set differently according to the deployment environment type and license type.

Benefits of technology

It improves the security and flexibility of software license management, allows continued use in offline environments for a certain period of time, enhances the user experience, and enables differentiated licensing for different customers and environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122153850A_ABST
    Figure CN122153850A_ABST
Patent Text Reader

Abstract

The application relates to the technical field of computer software, and discloses a software license management method and related device, which comprises the following steps: when a client of an application program is started in a target server, obtaining a license file and an environment contract file from a local file directory list; respectively performing digital signature verification on the license file and the environment contract file, and performing bidirectional binding relationship verification on the license file and the environment contract file; when the digital signature verification and the bidirectional binding relationship verification pass, verifying whether a current use time exceeds a valid period and / or an offline tolerance period; when the current use time does not exceed the valid period, allowing the application program to be used; when the valid period is exceeded and the offline tolerance period is within, issuing an expiration prompt and allowing the application program to be used; when the period verification passes, performing business service verification on the basis of a user's business function call and resource quota of the client of the application program. The application embodiment realizes high security and flexible offline verification effect.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer software technology, specifically to a software license management method, apparatus, computer equipment, and computer-readable storage medium. Background Technology

[0002] Existing software license management systems typically employ simple serial number verification or network-based real-time authorization methods, which have numerous limitations in practical applications. Traditional license systems mostly use a single authorization model, making it difficult to meet the needs of different customers and deployment environments, and often failing to function properly in offline environments or requiring complex offline authorization processes.

[0003] The existing software license management system has the following technical problems: 1. Insufficient security: Traditional serial number verification is easily cracked or copied, and there is a lack of effective digital signature mechanisms to prevent licenses from being tampered with.

[0004] 2. Limited offline use: The existing system relies entirely on network connection for license verification and cannot function properly in environments with unstable or disconnected networks.

[0005] 3. Lack of flexible authorization mechanism: The existing management system is unable to provide differentiated authorization schemes for different customer types (trial, formal) and usage scenarios.

[0006] 4. Complex management: Customer information and license management are separated, making it difficult to manage and track them in a unified manner.

[0007] 5. Cumbersome activation process: The client activation process is complicated, resulting in a poor user experience. Summary of the Invention

[0008] In view of the above problems, embodiments of the present invention provide a software license management method, apparatus, computer device, and computer-readable storage medium to solve the problems of insufficient security, limited offline use, and lack of flexibility in the authorization mechanism of the prior art.

[0009] According to one aspect of the present invention, a software license management method is provided, the method comprising: When the application's client starts on the target server, it retrieves the license file and environment contract file from the local file directory list. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is digitally signed and includes the license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the authorization specification information. The license file and environment contract file are digitally signed and verified respectively, and the two-way binding relationship between the license file and environment contract file is verified according to the deployment environment type information and the license file type. When the digital signature verification and two-way binding relationship verification pass, it is verified that the current usage time exceeds the validity period and / or the offline tolerance period; The application is permitted to be used as long as the current usage time has not exceeded the validity period; When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the use of the application is allowed; When the deadline verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota.

[0010] In one optional approach, the deployment environment type information includes developer mode and production environment; the license file type includes trial version, official version, and developer mode type; the digital signature verification of the license file and environment contract file, and the two-way binding relationship verification of the license file and environment contract file based on the deployment environment type information and the license file type, includes: Extract the license file type in XML format from the license file; Extract the deployment environment type information in JSON format from the environment contract file; The XML format license file type and the JSON format deployment environment type information are respectively mapped to the license file type and deployment environment type information with the same data structure; Based on the authorized object, determine whether the information in the license file type and deployment environment type information with the same data structure matches; When a match is found, the two-way binding relationship is verified.

[0011] In one alternative approach, the application is an intelligent agent application platform; the resource quota is the number of configured intelligent agent applications. When the time limit verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, including: When a user invokes a business function of the intelligent agent application platform, determine whether it is a newly created intelligent agent application in the intelligent agent application platform. When creating a new intelligent agent application, the system compares the number of intelligent agent applications created by the user in the past with the resource quota. If the resource quota is exceeded, the business service verification fails.

[0012] In an alternative approach, before retrieving the license file and environment contract file from the local file directory list when the application's client starts, the method further includes: When the application's client is deployed to the target server, the application's client obtains the contract file package uploaded by the user and generates a unique identifier code based on the contract file package; The application's backend server binds the license file with a unique identifier code and generates a temporary activation code and a first key, which are then sent to the user so that the user can input the temporary activation code and the first key into the application's client. The client of the application performs digital signature verification and two-way binding relationship verification on the license file and the environment contract file respectively according to the contract file package; When the verification is successful, the application's client activates itself based on the temporary activation code, the first key, and the contract file package, and updates the license file status to activated, allowing the application to start normally.

[0013] In one alternative approach, before the application's client obtains the user-uploaded contract file package and generates a unique identifier code based on the contract file package when the application's client is deployed to the target server, the method includes: Based on the user information of the software development user, the license file name and authorization specification information are generated in the license file management backend; the authorization specification information includes the license file type, authorized object, resource quota, validity period and offline tolerance period; the user information includes the authorized object and the deployment environment type information corresponding to the user; When the issuance of a license is confirmed, a license document is generated based on the license document name and the authorization specification information, and a corresponding environmental contract document is generated at the same time. The license document and the environmental contract document are then packaged together to generate a contract document package.

[0014] In one alternative approach, the process of generating the environment contract file is as follows: Generate the first asymmetric key pair; Based on the authorization specification information and the user information, an environment configuration data object is constructed; the environment configuration data object includes the deployment environment type information corresponding to the application. Serialize the environment configuration data object into a JSON string using predefined JSON serialization options; Calculate the hash value of the JSON string, sign it using the first private key of the first asymmetric key pair to obtain a signed document, and convert the first public key of the first asymmetric key pair into a string and embed it in the signed document to obtain a digital signature; Create a signature document containing the original data, the first public key, the digital signature, and the environment timestamp; The signed document is encoded to obtain an environmental contract file.

[0015] According to another aspect of the present invention, a software license management device is provided, comprising: The first acquisition module is used to acquire a license file and an environment contract file from a local file directory list when the application client starts on the target server; the environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application; the license file is digitally signed and includes a license file name and authorization specification information; the authorization specification information includes license file type, authorized object, resource quota, validity period and offline tolerance period; the offline tolerance period is determined according to the authorization specification information; The first verification module is used to perform digital signature verification on the license file and the environment contract file respectively, and to verify the two-way binding relationship between the license file and the environment contract file according to the deployment environment type information and the license file type. The second verification module is used to verify that the current usage time exceeds the validity period and / or the offline tolerance period when the digital signature verification and the two-way binding relationship verification pass; The first determining module is used to allow the use of the application when the current usage time has not exceeded the validity period; The first determining module is further configured to issue an expiration reminder and allow the use of the application when the current usage time exceeds the validity period and is within the offline tolerance period; The third verification module is used to verify business services based on the user's business function calls to the application client and the resource quota when the time limit verification is passed.

[0016] In an alternative embodiment, the device further includes: The second acquisition module is used to acquire the contract file package uploaded by the user when the application client is deployed to the target server, and generate a unique identifier code based on the contract file package; the application's backend server binds the license file with the unique identifier code, and generates a temporary activation code and a first key and sends them to the user, so that the user can input the temporary activation code and the first key into the application client; The fourth verification module is used to perform digital signature verification and two-way binding relationship verification on the license document and the environmental contract document respectively, based on the contract document package. The activation module is used to activate the application based on the temporary activation code, the first key, and the contract file package when the verification is successful, and to update the status of the license file to activated, so that the application can start normally.

[0017] According to another aspect of the present invention, a computer device is provided, including: a processor, a memory, a communication interface, and a communication bus, wherein the processor, the memory, and the communication interface communicate with each other through the communication bus; The memory is used to store at least one executable instruction that causes the processor to perform the operation of the software license management method.

[0018] According to another aspect of the present invention, a computer-readable storage medium is provided, the storage medium storing at least one executable instruction, which, when executed on a computer device, causes the computer device to perform the operation of the software license management method.

[0019] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0020] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0021] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0022] The above description is merely an overview of the technical solutions of the embodiments of the present invention. In order to better understand the technical means of the embodiments of the present invention and to implement them in accordance with the contents of the specification, and to make the above and other objects, features and advantages of the embodiments of the present invention more apparent and understandable, specific embodiments of the present invention are described below. Attached Figure Description

[0023] The accompanying drawings are for illustrative purposes only and are not intended to limit the invention. Furthermore, the same reference numerals denote the same parts throughout the drawings. In the drawings: Figure 1 A flowchart illustrating the software license management method provided in an embodiment of the present invention is shown; Figure 2 A flowchart illustrating a software license management method according to another embodiment of the present invention is shown; Figure 3 A schematic diagram of the structure of the software license management device provided in an embodiment of the present invention is shown; Figure 4 A schematic diagram of the structure of a computer device provided in an embodiment of the present invention is shown. Detailed Implementation

[0024] Exemplary embodiments of the invention will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the invention are shown in the drawings, it should be understood that the invention can be implemented in various forms and should not be limited to the embodiments set forth herein.

[0025] Figure 1 A flowchart of a software license management method provided in an embodiment of the present invention is shown. This method is executed by a computer device. The computer device can be a desktop computer, tablet computer, smart terminal, wearable device, cloud platform device, or distributed device, etc., and the embodiments of the present invention do not impose specific limitations. For example, it can be an application-based client. Figure 1 As shown, the method includes the following steps: Step 110: When the application's client starts on the target server, retrieve the license file and environment contract file from the local file directory list.

[0026] In this embodiment of the invention, the application is an intelligent agent application platform, used to provide users with business functions such as intelligent agent creation and invocation. This intelligent agent application platform includes multiple business services, such as the creation of virtual intelligent agent applications.

[0027] In this embodiment of the invention, when the application client is deployed to the target server, the uploaded contract file package needs to be decompressed to obtain the environment contract file and license file. Verification is then performed based on the environment contract file and license file, followed by the corresponding deployment. After the application client is deployed on the target server, the application client stores the license file and environment contract file locally. Therefore, when the application client is launched on the target server, the license file and environment contract file can be directly retrieved from the local machine. The application includes two modes: production environment and developer mode.

[0028] To enhance the security of the environment contract and license documents, the environment contract document in this embodiment of the invention is a digitally signed file, which includes pre-configured deployment environment type information corresponding to the application. This deployment environment type information is in JSON format and includes developer mode and production environment. Developer mode is exclusively for SDK (Independent Software Vendor) installation and provides the SDK with the runtime foundation and development framework. Production environment possesses full business capabilities. This environment contract document serves as an authoritative statement of the deployment environment's identity and is the only trusted source for application clients to identify their own environment.

[0029] The license file is also a digitally signed file, including the license file name and authorization specifications. The authorization specifications include the license file type, authorized user, resource quota, validity period, and offline tolerance period. The offline tolerance period, determined based on the authorization specifications, allows the application to continue providing usable service for a period after the validity period expires, effectively enhancing the user experience. The license file type is in XML format, including trial version, official version, and developer mode types. The trial version and official version types correspond to the production environment, and their resource quotas, validity periods, and offline tolerance periods differ. The developer mode type corresponds to the developer mode environment. A user can possess multiple license files, but in a single deployment environment, only one license can be active at a time. Having only a single license file does not guarantee that the current license file is the correct application for the corresponding environment. Therefore, in order to ensure that the license file is only the license file corresponding to the specified environment, when the license file is issued, the authorized object (production environment or developer mode) will be forcibly specified, and an environment contract file that is strongly bound to it will be automatically generated. The two must be used together to complete the two-way binding verification, thereby determining that the license file of the production environment or developer mode can only be effective in its corresponding environment, forming a complete security closed loop.

[0030] Step 120: Perform digital signature verification on the license file and environment contract file respectively, and verify the two-way binding relationship between the license file and environment contract file according to the deployment environment type information and the license file type.

[0031] The process of generating the environmental contract file is as follows: A first asymmetric key pair is generated; an environment configuration data object is constructed based on the authorization specification information and the user information; the environment configuration data object includes deployment environment type information corresponding to the application; the environment configuration data object is serialized into a JSON string using predefined JSON serialization options; the hash value of the JSON string is calculated, and it is signed using the first private key of the first asymmetric key pair to obtain a signature document; the first public key of the first asymmetric key pair is converted into a string and embedded in the signature document to obtain a digital signature; a signature document containing the original data, the first public key, the digital signature, and an environment timestamp is created; the signature document is data encoded to obtain an environment contract file. The environment timestamp adopts the UTC international standard. The signature document can be encoded using the base64 algorithm. The base64 algorithm can convert any data into a portable string, avoiding distortion during transmission. Base64 encoding is used as the transmission / storage format for encrypted data. For example, plaintext data encrypted using MDs, SHA, etc., can be easily transmitted and stored after being Base64 encoded into a string. In this embodiment of the invention, although the license file itself is a very rigorous digital file, in order to avoid the original content being distorted or inconvenient to disseminate due to various system environment encoding reasons, network and other factors during transmission, this embodiment of the invention encodes both the license file and the environment file using the base64 algorithm, thereby further enhancing their reliability.

[0032] The process of generating the license file is as follows: Receive customer information and license configuration requests; Verify the validity of customer information (such as email format, etc.); When the validity verification is successful, a license data object containing customer information, usage quota, validity period and other data is generated based on the authorization specification information.

[0033] The license data object is digitally signed using the second private key, and the second public key is converted into a string and embedded in the signature document to obtain the digital signature of the license file. A signature document containing the original license data, the second public key, the digital signature, and the license timestamp is created to generate the digitally signed license file. The generated license file is then saved to the specified directory of the license management system.

[0034] Therefore, the process of digitally verifying the license document and environmental agreement document is the reverse operation, and will not be elaborated here. The license document and environmental agreement document, after digital signature verification, are plaintext data.

[0035] Once the digital signature verification is successful, relevant information is extracted from the environmental contract document and license document respectively to verify the two-way binding relationship. Specifically, this includes: Extract the license file type in XML format from the license file.

[0036] Extract the deployment environment type information in JSON format from the environment contract file; The XML-formatted license file type and the JSON-formatted deployment environment type information are mapped to the same data structure, respectively. Since the license file is not in XML format and the deployment environment type information is in JSON format, this embodiment maps them to the same data structure to determine if they match. Specifically, the mapping can be performed according to pre-defined mapping rules.

[0037] Based on the authorized object, it is determined whether the information in the license file type and deployment environment type information with the same data structure matches. In this embodiment of the invention, it is determined whether the type information in the license file type matches the corresponding type information in the deployment environment type information. This can be determined by whether the extracted specific fields are consistent. When both are in developer mode or both are in production environment, the two-way binding relationship verification is confirmed to be successful. When they match, the two-way binding relationship verification is confirmed to be successful. In addition, this embodiment of the invention also verifies the timestamp information to determine whether the environment timestamp and the license timestamp are consistent.

[0038] Step 130: When the digital signature verification and two-way binding relationship verification pass, verify that the current usage time exceeds the validity period and / or the offline tolerance period.

[0039] In this embodiment of the invention, when generating the license file, the validity period and offline tolerance period are obtained by setting a license timestamp and a preset period. For example, in the production environment of the official contract version, the timestamp is December 31, 2025, at 10:30 AM, the preset validity period is 3 years (synchronized with the user contract), and the offline tolerance period is 30 days. For the production environment of the user experience version, the timestamp is December 31, 2025, at 10:30 AM, the preset validity period is 1 month, and the offline tolerance period is 7 days. For the developer mode environment, the preset validity period is 3 months, and no tolerance period is set, etc.

[0040] In another embodiment of the present invention, the offline tolerance period is determined based on the authorization specification information. Specifically, the offline tolerance period is calculated based on the basic offline tolerance period, customer level coefficient, and authorization type coefficient. It is obtained through the following formula: T final =T base ×K level ×K type , Among them, T final Offline tolerance period; T base Based on the offline tolerance period, K level K represents the customer level coefficient. type For authorization type coefficient. For customer level coefficient K. level The base offline tolerance period (T) is determined based on the customer information of the authorized recipient in the authorization specifications, and is adjusted according to the coefficient configured based on the customer's payment level or cooperation level. base For example, the full contract version is set to 30 days, and the trial version to 7 days. The license type coefficient is a coefficient configured according to the license type to distinguish between the full contract version and the trial version.

[0041] Therefore, each time a user activates the application client, it will verify whether the current usage time has exceeded the validity period and offline tolerance period.

[0042] In this embodiment of the invention, a threshold for the longest single offline duration is also set: during the offline tolerance period T final Within the system, the duration of a single offline session for the application's client must not exceed the maximum offline duration threshold to prevent prolonged offline periods from escaping control.

[0043] Step 140: Allow the use of the application if the current usage time has not exceeded the validity period.

[0044] If the current usage time has not exceeded the validity period, it means that the user is still within the usage period. Therefore, the user is allowed to use the application and continue to execute step 160 to verify the business service.

[0045] Step 150: When the current usage time exceeds the validity period but is within the offline tolerance period, issue an expiration reminder and allow the use of the application.

[0046] When the current usage time exceeds the validity period but is within the offline tolerance period, it indicates that the contract corresponding to the application used by the user has expired. However, in order to reserve a certain amount of usage time for the user after the expiration, an expiration reminder is issued. The expiration reminder is used to remind the user of the remaining usage time and to remind them of the renewal.

[0047] Step 160: When the deadline verification passes, perform business service verification based on the user's business function calls to the application client and the resource quota.

[0048] In this embodiment of the invention, the application is an AI agent application platform; the resource quota is the number of configured AI agent teams. Each AI agent team comprises multiple virtual AI agents, and agents within the team can freely form teams.

[0049] Therefore, when the time limit verification passes, the business service is verified based on the user's business function calls to the application client and the resource quota, in the following ways: When a user invokes a business function of the intelligent agent application platform, it is determined whether this constitutes the creation of a new intelligent agent application within the platform. If it is a new application, the system compares the number of intelligent agent applications the user has historically created with the resource quota. If the resource quota is exceeded, the business service verification fails. In this embodiment of the invention, the application client monitors and stores relevant information such as the number of times the user creates and invokes intelligent agent applications on the platform, thereby obtaining the total number of intelligent agent applications the user has historically created.

[0050] In this embodiment of the invention, the resource quota also includes other business service information, wherein corresponding business verification rules are set to verify whether the business functions of the intelligent agent application platform used by the user exceed its corresponding resource quota.

[0051] When the business service is verified, users are allowed to call the corresponding service functions.

[0052] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0053] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0054] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0055] Figure 2 A flowchart of a software license management method according to another embodiment of the present invention is shown, which is executed by a computer device. The computer device can be a desktop computer, tablet computer, smart terminal, wearable device, cloud platform device, or distributed device, etc., and the embodiments of the present invention do not impose specific limitations. For example, it can be an application-based client. This embodiment is used for the case where the application client is deployed on a target server, such as... Figure 2 As shown, the method includes the following steps: Step 210: When the application client is deployed to the target server, the application client obtains the contract file package uploaded by the user and generates a unique identifier code (SN code) based on the contract file package.

[0056] The user obtains the contract file package through the license management system and uploads the contract file package when the application client is deployed to the target server.

[0057] The contract package includes a license file and a corresponding environment contract file. Specifically, before generating the license file, the license file name and authorization specification information are first generated in the license file management backend based on the software developer's user information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The user information includes the authorized object and the user's corresponding deployment environment type information. When the license is confirmed for issuance, the license file is generated based on the license file name and the authorization specification information, and the corresponding environment contract file is generated simultaneously. The license file and the environment contract file are then packaged into a contract package. Specifically, the process of generating the environment contract file is as follows: generating a first asymmetric key pair; constructing an environment configuration data object based on the authorization specification information and the user information; the environment configuration data object includes deployment environment type information corresponding to the application; serializing the environment configuration data object into a JSON string using predefined JSON serialization options; calculating the hash value of the JSON string and signing it using the first private key of the first asymmetric key pair to obtain a signature document, and converting the first public key of the first asymmetric key pair into a string and embedding it in the signature document to obtain a digital signature; creating a signature document containing the original data, the first public key, the digital signature, and an environment timestamp to obtain the environment contract file. The first asymmetric key pair can be an RSA 2048-bit key pair generated by an RSA key generator.

[0058] The process of generating a license file is as follows: Receive customer information and a license configuration request; verify the validity of the customer information (e.g., email format); when the validity verification is successful, generate a license data object containing customer information, usage quota, validity period, etc., based on the authorization specifications. Digitally sign the license data object using a second private key, and convert the second public key into a string and embed it in the signature document to obtain the digital signature of the license file; create a signature document containing the original license data, the second public key, the digital signature, and the license timestamp to generate the digitally signed license file; and save the generated license file to a designated directory in the license management system.

[0059] After generating the license file and the corresponding environment contract file, this embodiment of the invention packages them into a contract file package and stores it. This contract file package can be a zip-format compressed file. The user obtains this contract file package and uploads it to the application's client when deploying the application client to the target server. The user-uploaded contract file package is a .zip format file containing the license file and the afenv.config.signed environment file. The client first decompresses the .zip format contract file package, extracts the contents of the license file, and generates a unique identifier code. Specifically, a unique identifier code SN is generated based on the license file content and license file name in the license file.

[0060] In another specific implementation of this invention, the unique identifier code is generated through multi-dimensional information. Specifically, it is generated by a combined hash value of the contract file package feature hash, the target server identifier, and the application's unique identifier. The generated unique identifier code is uniquely bound to the authorized object, with one unique identifier code corresponding to one authorized object.

[0061] Step 220: The application's backend server binds the license file with the unique identifier code and generates a temporary activation code and a first key, which are then sent to the user so that the user can input the temporary activation code and the first key into the application's client.

[0062] When the application's client receives the license file, it immediately generates a unique identifier (SN code) corresponding to that license file. The SN code is a unique deployment instance identifier generated according to preset rules. A unique identifier code is bound to a license file, forming a one-to-one mapping relationship, indicating that the license file has been put into practical use.

[0063] Once the license file is bound to a specific unique identifier, the application's backend server generates a temporary activation code and a primary key. This temporary activation code serves as a one-time credential for application client activation and includes information on validity and tamper-proof features.

[0064] Step 230: The client of the application performs digital signature verification and two-way binding relationship verification on the license file and the environment contract file respectively according to the contract file package.

[0065] After receiving the contract file package, the application's client parses it. The parsing process involves performing the reverse digital signature verification operation on both the license file and the environmental contract file, as described above, to obtain the plaintext data of both documents.

[0066] Step 240: When the verification is successful, the client of the application activates the application based on the temporary activation code, the first key, and the contract file package, and updates the status of the license file to activated, so that the application can start normally.

[0067] The application's client obtains the temporary activation code and first key entered by the user in the activation form and performs activation verification. Once the activation verification is successful, the application's client becomes available, the license status is changed to available, and the available status of the license file is sent to the application's backend server. This completes the deployment of the application on the target server, and the user can then normally launch and use the application's client.

[0068] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0069] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0070] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0071] Figure 3 A schematic diagram of the structure of a software license management device provided in an embodiment of the present invention is shown. This device is based on an application client. For example... Figure 3 As shown, the device 300 includes: The first acquisition module 310 is used to acquire a license file and an environment contract file from a local file directory list when the application client starts on the target server; the environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application; the license file is digitally signed and includes a license file name and authorization specification information; the authorization specification information includes license file type, authorized object, resource quota, validity period and offline tolerance period; the offline tolerance period is determined according to the authorization specification information; The first verification module 320 is used to perform digital signature verification on the license file and the environment contract file respectively, and to perform two-way binding relationship verification on the license file and the environment contract file according to the deployment environment type information and the license file type.

[0072] The second verification module 330 is used to verify that the current usage time exceeds the validity period and / or the offline tolerance period when the digital signature verification and the two-way binding relationship verification are passed. The first determining module 340 is used to allow the use of the application when the current usage time has not exceeded the validity period; The first determining module 350 is further configured to issue an expiration reminder and allow the use of the application when the current usage time exceeds the validity period and is within the offline tolerance period; The third verification module 360 ​​is used to verify business services based on the user's business function calls to the application client and the resource quota when the time limit verification is passed.

[0073] In this embodiment of the invention, the device further includes: The second acquisition module is used to acquire the contract file package uploaded by the user when the application client is deployed to the target server, and generate a unique identifier code based on the contract file package; the application's backend server binds the license file with the unique identifier code, and generates a temporary activation code and a first key and sends them to the user, so that the user can input the temporary activation code and the first key into the application client; The fourth verification module is used to perform digital signature verification and two-way binding relationship verification on the license document and the environmental contract document respectively, based on the contract document package. The activation module is used to activate the application based on the temporary activation code, the first key, and the contract file package when the verification is successful, and to update the status of the license file to activated, so that the application can start normally.

[0074] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0075] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0076] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0077] Figure 4 The diagram shows a structural schematic of a computer device provided in an embodiment of the present invention. The specific embodiments of the present invention do not limit the specific implementation of the computer device.

[0078] like Figure 4 As shown, the computer device may include: a processor 402, a communications interface 404, a memory 406, and a communications bus 408.

[0079] The processor 402, communication interface 404, and memory 406 communicate with each other via communication bus 408. Communication interface 404 is used to communicate with other network elements such as clients or other servers. The processor 402 executes program 410, specifically performing the relevant steps described in the software license management method embodiment.

[0080] Specifically, program 410 may include program code, which includes computer-executable instructions.

[0081] Processor 402 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention. The computer device includes one or more processors, which may be processors of the same type, such as one or more CPUs; or processors of different types, such as one or more CPUs and one or more ASICs.

[0082] Memory 406 is used to store program 410. Memory 406 may include high-speed RAM memory, and may also include non-volatile memory, such as at least one disk storage device.

[0083] Specifically, program 410 can be called by processor 402 to cause the computer device to perform the following operations: When the application's client starts on the target server, it retrieves the license file and environment contract file from the local file directory list. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is digitally signed and includes the license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the authorization specification information. The license file and environment contract file are digitally signed and verified respectively, and the two-way binding relationship between the license file and environment contract file is verified according to the deployment environment type information and the license file type. When the digital signature verification and two-way binding relationship verification pass, it is verified that the current usage time exceeds the validity period and / or the offline tolerance period; The application is permitted to be used as long as the current usage time has not exceeded the validity period; When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the use of the application is allowed; When the deadline verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota.

[0084] In one optional approach, the deployment environment type information is in JSON format, including developer mode and production environment; the license file type is in XML format, including trial version, official version, and developer mode types; the digital signature verification of the license file and environment contract file, and the two-way binding relationship verification of the license file and environment contract file based on the deployment environment type information and the license file type, includes: Extract the license file type in XML format from the license file; Extract the deployment environment type information in JSON format from the environment contract file; The XML format license file type and the JSON format deployment environment type information are respectively mapped to the license file type and deployment environment type information with the same data structure; Based on the authorized object, determine whether the information in the license file type and deployment environment type information with the same data structure matches; When a match is found, the two-way binding relationship is verified.

[0085] In one alternative approach, the application is an intelligent agent application platform; the resource quota is the number of configured intelligent agent applications. When the time limit verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, including: When a user invokes a business function of the intelligent agent application platform, determine whether it is a newly created intelligent agent application in the intelligent agent application platform. When creating a new intelligent agent application, the system compares the number of intelligent agent applications created by the user in the past with the resource quota. If the resource quota is exceeded, the business service verification fails.

[0086] In an alternative approach, before retrieving the license file and environment contract file from the file list when the application's client starts, the method further includes: When the application's client is deployed to the target server, the application's client obtains the contract file package uploaded by the user and generates a unique identifier code based on the contract file package; The application's backend server binds the license file with a unique identifier code and generates a temporary activation code and a first key, which are then sent to the user so that the user can input the temporary activation code and the first key into the application's client. The client of the application performs digital signature verification and two-way binding relationship verification on the license file and the environment contract file respectively according to the contract file package; When the verification is successful, the application's client activates itself based on the temporary activation code, the first key, and the contract file package, and updates the license file status to activated, allowing the application to start normally.

[0087] In one alternative approach, before the application's client obtains the user-uploaded contract file package and generates a unique identifier code based on the contract file package when the application's client is deployed to the target server, the method includes: Based on the user information of the software development user, the license file name and authorization specification information are generated in the license file management backend; the authorization specification information includes the license file type, authorized object, resource quota, validity period and offline tolerance period; the user information includes the authorized object and the deployment environment type information corresponding to the user; When the issuance of a license is confirmed, a license document is generated based on the license document name and the authorization specification information, and a corresponding environmental contract document is generated at the same time. The license document and the environmental contract document are then packaged together to generate a contract document package.

[0088] In one alternative approach, the process of generating the environment contract file is as follows: Generate the first asymmetric key pair; Based on the authorization specification information and the user information, an environment configuration data object is constructed; the environment configuration data object includes the deployment environment type information corresponding to the application. Serialize the environment configuration data object into a JSON string using predefined JSON serialization options; Calculate the hash value of the JSON string, sign it using the first private key of the first asymmetric key pair to obtain a signed document, and convert the first public key of the first asymmetric key pair into a string and embed it in the signed document to obtain a digital signature; Create a signature document containing the original data, the first public key, the digital signature, and the environment timestamp to obtain the environment contract file.

[0089] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0090] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0091] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0092] This invention provides a computer-readable storage medium storing at least one executable instruction that, when executed on a computer device, causes the computer device to perform the software license management method in any of the above method embodiments.

[0093] Executable instructions can be used to cause computer devices to perform the following operations: When the application's client starts on the target server, it retrieves the license file and environment contract file from the local file directory list. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is digitally signed and includes the license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the authorization specification information. The license file and environment contract file are digitally signed and verified respectively, and the two-way binding relationship between the license file and environment contract file is verified according to the deployment environment type information and the license file type. When the digital signature verification and two-way binding relationship verification pass, it is verified that the current usage time exceeds the validity period and / or the offline tolerance period; The application is permitted to be used as long as the current usage time has not exceeded the validity period; When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the use of the application is allowed; When the deadline verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota.

[0094] In one optional approach, the deployment environment type information is in JSON format, including developer mode and production environment; the license file type is in XML format, including trial version, official version, and developer mode types; the digital signature verification of the license file and environment contract file, and the two-way binding relationship verification of the license file and environment contract file based on the deployment environment type information and the license file type, includes: Extract the license file type in XML format from the license file; Extract the deployment environment type information in JSON format from the environment contract file; The XML format license file type and the JSON format deployment environment type information are respectively mapped to the license file type and deployment environment type information with the same data structure; Based on the authorized object, determine whether the information in the license file type and deployment environment type information with the same data structure matches; When a match is found, the two-way binding relationship is verified.

[0095] In one alternative approach, the application is an intelligent agent application platform; the resource quota is the number of configured intelligent agent applications. When the time limit verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, including: When a user invokes a business function of the intelligent agent application platform, determine whether it is a newly created intelligent agent application in the intelligent agent application platform. When creating a new intelligent agent application, the system compares the number of intelligent agent applications created by the user in the past with the resource quota. If the resource quota is exceeded, the business service verification fails.

[0096] In an alternative approach, before retrieving the license file and environment contract file from the file list when the application's client starts, the method further includes: When the application's client is deployed to the target server, the application's client obtains the contract file package uploaded by the user and generates a unique identifier code based on the contract file package; The application's backend server binds the license file with a unique identifier code and generates a temporary activation code and a first key, which are then sent to the user so that the user can input the temporary activation code and the first key into the application's client. The client of the application performs digital signature verification and two-way binding relationship verification on the license file and the environment contract file respectively according to the contract file package; When the verification is successful, the application's client activates itself based on the temporary activation code, the first key, and the contract file package, and updates the license file status to activated, allowing the application to start normally.

[0097] In one alternative approach, before the application's client obtains the user-uploaded contract file package and generates a unique identifier code based on the contract file package when the application's client is deployed to the target server, the method includes: Based on the user information of the software development user, the license file name and authorization specification information are generated in the license file management backend; the authorization specification information includes the license file type, authorized object, resource quota, validity period and offline tolerance period; the user information includes the authorized object and the deployment environment type information corresponding to the user; When the issuance of a license is confirmed, a license document is generated based on the license document name and the authorization specification information, and a corresponding environmental contract document is generated at the same time. The license document and the environmental contract document are then packaged together to generate a contract document package.

[0098] In one alternative approach, the process of generating the environment contract file is as follows: Generate the first asymmetric key pair; Based on the authorization specification information and the user information, an environment configuration data object is constructed; the environment configuration data object includes the deployment environment type information corresponding to the application. Serialize the environment configuration data object into a JSON string using predefined JSON serialization options; Calculate the hash value of the JSON string, sign it using the first private key of the first asymmetric key pair to obtain a signed document, and convert the first public key of the first asymmetric key pair into a string and embed it in the signed document to obtain a digital signature; Create a signature document containing the original data, the first public key, the digital signature, and the environment timestamp to obtain the environment contract file.

[0099] This invention, in its embodiments, retrieves a license file and an environment contract file from a local file directory list when the application's client starts on the target server. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is also digitally signed and includes a license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the license file type. The license file and environment contract file are digitally signed and verified, and the verification is performed based on the deployment environment type information and the... The system verifies the two-way binding relationship between the license file and the environmental contract file based on the license file type. When the digital signature verification and the two-way binding relationship verification pass, it verifies that the current usage time exceeds the validity period and / or the offline tolerance period. When the current usage time does not exceed the validity period, the application is allowed to be used. When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the application is allowed to be used. When the expiration period verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, which can improve the security of verification, enable offline use, and provide a flexible authorization mechanism.

[0100] Furthermore, the offline tolerance period design allows for an additional grace period after the license officially expires, enabling clients to continue using the service for a period of time even when the network is offline. This improves flexibility and effectively enhances the user experience.

[0101] Furthermore, by differentiating license types and setting different permissions and validity periods for different types, the flexibility of authorization can be improved.

[0102] This invention provides a software license management device for executing the above-described software license management method.

[0103] This invention provides a computer program that can be invoked by a processor to cause a computer device to execute the software license management method in any of the above method embodiments.

[0104] This invention provides a computer program product, which includes a computer program stored on a computer-readable storage medium. The computer program includes program instructions, which, when executed on a computer, cause the computer to perform the software license management method in any of the above method embodiments.

[0105] The algorithms or displays provided herein are not inherently related to any particular computer, virtual system, or other device. Various general-purpose systems can also be used in conjunction with the teachings herein. The required structure for constructing such systems is apparent from the above description. Furthermore, the embodiments of the present invention are not directed to any particular programming language. It should be understood that the content of the invention described herein can be implemented using various programming languages, and the above description of specific languages ​​is for the purpose of disclosing the best mode of implementation of the invention.

[0106] Numerous specific details are set forth in the specification provided herein. However, it will be understood that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures, and techniques have not been shown in detail so as not to obscure the understanding of this specification.

[0107] Similarly, it should be understood that, in order to streamline the invention and aid in understanding one or more of the various aspects of the invention, features of the embodiments of the invention are sometimes grouped together in a single embodiment, figure, or description thereof in the above description of exemplary embodiments of the invention. However, this disclosure should not be construed as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim.

[0108] Those skilled in the art will understand that modules in the device of the embodiments can be adaptively changed and placed in one or more devices different from that embodiment. Modules, units, or components in the embodiments can be combined into a single module, unit, or component, and can be divided into multiple sub-modules, sub-units, or sub-components. Except where at least some of such features and / or processes or units are mutually exclusive, any combination can be used to combine all features disclosed in this specification (including the accompanying claims, abstract, and drawings) and all processes or units of any method or device so disclosed. Unless expressly stated otherwise, each feature disclosed in this specification (including the accompanying claims, abstract, and drawings) may be replaced by an alternative feature that serves the same, equivalent, or similar purpose.

[0109] It should be noted that the above embodiments are illustrative of the invention and not restrictive, and that those skilled in the art can devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several different elements and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third, etc., does not indicate any order. These words can be interpreted as names. The steps in the above embodiments, unless otherwise specified, should not be construed as limiting the order of execution.

Claims

1. A software license management method, characterized in that, The method includes: When the application's client starts on the target server, it retrieves the license file and environment contract file from the local file directory list. The environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application. The license file is digitally signed and includes the license file name and authorization specification information. The authorization specification information includes the license file type, authorized object, resource quota, validity period, and offline tolerance period. The offline tolerance period is determined based on the authorization specification information. The license file and environment contract file are digitally signed and verified respectively, and the two-way binding relationship between the license file and environment contract file is verified according to the deployment environment type information and the license file type. When the digital signature verification and two-way binding relationship verification pass, it is verified that the current usage time exceeds the validity period and / or the offline tolerance period; The application is permitted to be used as long as the current usage time has not exceeded the validity period; When the current usage time exceeds the validity period but is within the offline tolerance period, an expiration reminder is issued, and the use of the application is allowed; When the deadline verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota.

2. The method according to claim 1, characterized in that, The deployment environment type information includes developer mode and production environment; the license file type includes trial version, official version, and developer mode type; the digital signature verification of the license file and environment contract file, and the two-way binding relationship verification of the license file and environment contract file according to the deployment environment type information and the license file type, includes: Extract the license file type in XML format from the license file; Extract the deployment environment type information in JSON format from the environment contract file; The XML format license file type and the JSON format deployment environment type information are respectively mapped to the license file type and deployment environment type information with the same data structure; Based on the authorized object, determine whether the information in the license file type and deployment environment type information with the same data structure matches; When a match is found, the two-way binding relationship is verified.

3. The method according to claim 1, characterized in that, The application is an intelligent agent application platform; the resource quota is the number of intelligent agent applications configured. When the time limit verification passes, business service verification is performed based on the user's business function calls to the application client and the resource quota, including: When a user invokes a business function of the intelligent agent application platform, determine whether it is a newly created intelligent agent application in the intelligent agent application platform. When creating a new intelligent agent application, the system compares the number of intelligent agent applications created by the user in the past with the resource quota. If the resource quota is exceeded, the business service verification fails.

4. The method according to any one of claims 1-3, characterized in that, Before retrieving the license file and environment contract file from the file list when the application's client starts, the method further includes: When the application's client is deployed to the target server, the application's client obtains the contract file package uploaded by the user and generates a unique identifier code based on the contract file package; The application's backend server binds the license file with a unique identifier code and generates a temporary activation code and a first key, which are then sent to the user so that the user can input the temporary activation code and the first key into the application's client. The client of the application performs digital signature verification and two-way binding relationship verification on the license file and the environment contract file respectively according to the contract file package; When the verification is successful, the application's client activates itself based on the temporary activation code, the first key, and the contract file package, and updates the license file status to activated, allowing the application to start normally.

5. The method according to claim 4, characterized in that, When the application's client is deployed to the target server, before the application's client obtains the contract file package uploaded by the user and generates a unique identifier code based on the contract file package, the method includes: Based on the user information of the software development user, the license file name and authorization specification information are generated in the license file management backend; the authorization specification information includes the license file type, authorized object, resource quota, validity period and offline tolerance period; the user information includes the authorized object and the deployment environment type information corresponding to the user; When the issuance of a license is confirmed, a license document is generated based on the license document name and the authorization specification information, and a corresponding environmental contract document is generated at the same time. The license document and the environmental contract document are then packaged together to generate a contract document package.

6. The method according to claim 5, characterized in that, The process of generating the aforementioned environment contract file is as follows: Generate the first asymmetric key pair; Based on the authorization specification information and the user information, an environment configuration data object is constructed; the environment configuration data object includes the deployment environment type information corresponding to the application. Serialize the environment configuration data object into a JSON string using predefined JSON serialization options; Calculate the hash value of the JSON string, sign it using the first private key of the first asymmetric key pair to obtain a signed document, and convert the first public key of the first asymmetric key pair into a string and embed it in the signed document to obtain a digital signature; Create a signature document containing the original data, the first public key, the digital signature, and the environment timestamp; The signed document is encoded to obtain an environmental contract file.

7. A software license management device, characterized in that, The device is based on an application client and includes: The first acquisition module is used to acquire a license file and an environment contract file from a local file directory list when the application client starts on the target server; the environment contract file is digitally signed and includes pre-configured deployment environment type information corresponding to the application; the license file is digitally signed and includes a license file name and authorization specification information; the authorization specification information includes license file type, authorized object, resource quota, validity period and offline tolerance period; the offline tolerance period is determined according to the authorization specification information; The first verification module is used to perform digital signature verification on the license file and the environment contract file respectively, and to verify the two-way binding relationship between the license file and the environment contract file according to the deployment environment type information and the license file type. The second verification module is used to verify that the current usage time exceeds the validity period and / or the offline tolerance period when the digital signature verification and the two-way binding relationship verification pass; The first determining module is used to allow the use of the application when the current usage time has not exceeded the validity period; The first determining module is further configured to issue an expiration reminder and allow the use of the application when the current usage time exceeds the validity period and is within the offline tolerance period; The third verification module is used to verify business services based on the user's business function calls to the application client and the resource quota when the time limit verification is passed.

8. The apparatus according to claim 7, characterized in that, The device further includes: The second acquisition module is used to acquire the contract file package uploaded by the user when the application client is deployed to the target server, and generate a unique identifier code based on the contract file package; the application's backend server binds the license file with the unique identifier code, and generates a temporary activation code and a first key and sends them to the user, so that the user can input the temporary activation code and the first key into the application client; The fourth verification module is used to perform digital signature verification and two-way binding relationship verification on the license document and the environmental contract document respectively, based on the contract document package. The activation module is used to activate the application based on the temporary activation code, the first key, and the contract file package when the verification is successful, and to update the status of the license file to activated, so that the application can start normally.

9. A computer device, characterized in that, include: The processor, memory, communication interface, and communication bus are provided, wherein the processor, memory, and communication interface communicate with each other via the communication bus. The memory is used to store at least one executable instruction that causes the processor to perform the operation of the software license management method as described in any one of claims 1-6.

10. A computer-readable storage medium, characterized in that, The storage medium stores at least one executable instruction, which, when executed on a computer device, causes the computer device to perform the operation of the software license management method as described in any one of claims 1-6.