Software licensing method and device based on time coupling and computer equipment
By performing dual authentication when software opening and use, and comparing the validity period of judgment with time, the problem of software authorization permit supervision loopholes in existing technologies has been solved, and the reliability of fine supervision and authorization of software validity periods is realized.
Patent Information
- Application Number
- CN202411482112.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-23
- Publication Date
- 2025-01-28
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
There are regulatory loopholes in the licensing supervision of software in the prior art, which is difficult to effectively prevent users from avoiding the deadline of the software by turning on the software all the time.
Adopt time -based coupling software license methods, through dual -enlarged authority mechanisms, first verification and second verification when software opening and use, combined with the comparison of the time of this machine system and UTC time, judge the validity period of the software authorization, and at the time of the software authorization period, and in the period of time, in the period Send expiration reminders when the authorization expires.
Effectively prevent users from turning on the software to avoid the validity limit, improve the reliability of software authorization permit supervision, and ensure the intellectual property and economic benefits of software developers.
Smart Images

Figure CN119377917A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this specification relate to the field of software management technology, and in particular to a software licensing method, apparatus, and computer device based on time coupling. Background Art
[0002] As the network environment improves, software developers usually use some encryption method to protect their software to prevent unauthorized use. However, on the one hand, the functions and modules of software are increasing, and different personalized services need to be customized for different users. The single software protection function can no longer meet the electronic distribution, upgrade, tracking, management and on-demand sales of software in the Internet era; on the other hand, the software encryption method based on hardware encryption products based on dongles not only brings hardware production, installation and maintenance costs, but also is easy to lose and crack through hardware duplication. Once cracked, the software can be copied in large quantities, causing irreparable losses, thus losing the meaning of software protection.
[0003] In view of this, the embodiments of this specification are intended to provide a software licensing method, apparatus, and computer device based on time coupling. Summary of the invention
[0004] In view of the above problems in the prior art, the purpose of the embodiments of this specification is to provide a software licensing method, apparatus and computer device based on time coupling to solve the problem of regulatory loopholes in the prior art for software authorization and licensing supervision.
[0005] In order to solve the above technical problems, the specific technical solutions of the embodiments of this specification are as follows:
[0006] In a first aspect, an embodiment of this specification provides a software licensing method based on time coupling, including:
[0007] In response to the user's instruction to start the software, decrypt the user's independent authorization certificate and compare the decrypted software and hardware information with the local machine information;
[0008] Determine whether the software and hardware information is consistent with the local machine information;
[0009] If yes, then a first verification is performed on the authorization validity period of the software, and the software is allowed to be opened when the first verification passes;
[0010] In response to a user's instruction to use the software, performing a second verification on the authorization validity period of the software, and allowing the software to be used when the second verification passes;
[0011] If not, a permission error reminder is fed back.
[0012] Furthermore, performing a first verification on the authorization validity period of the software and allowing the software to be opened when the first verification passes includes:
[0013] Determine whether the local system time is consistent with UTC time;
[0014] If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the end time of the authorization validity period;
[0015] If so, determining that the software authorization has expired and sending an expiration reminder;
[0016] If not, the software is allowed to be opened.
[0017] Specifically, if the local system time is inconsistent with the UTC time, the method further includes:
[0018] Determine whether the local system time has been modified;
[0019] If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold;
[0020] If the number of modifications is less than or equal to the predetermined modification number threshold, then determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified;
[0021] If yes, determine whether the time of the current opening instruction is greater than or equal to the deadline;
[0022] If so, determining that the software fails to start and sending an expiration reminder;
[0023] If not, the software is allowed to be opened.
[0024] Further, performing a second verification on the authorization validity period of the software and allowing the use of the software when the second verification passes, comprises:
[0025] Determine whether the local system time is consistent with UTC time;
[0026] If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the end time of the authorization validity period;
[0027] If so, determining that the software authorization has expired and sending an expiration reminder;
[0028] If not, use of the software is permitted.
[0029] Specifically, the method further includes:
[0030] If the local system time is inconsistent with the UTC time, determine whether the local system time has been modified;
[0031] If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold;
[0032] If the number of modifications is less than or equal to the predetermined modification number threshold, then determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified;
[0033] If so, obtain the time of this command use, the time of the last command opening, and the time of the last command use;
[0034] Determine whether the time of the current opening instruction is greater than the time of the previous opening instruction, whether the time of the current use instruction is greater than the time of the previous use instruction, and whether the system log time is greater than the time of the current use instruction;
[0035] If yes, determine whether the time of the current use instruction is greater than or equal to the deadline;
[0036] If so, determining that the software has failed to be used and sending an expiration reminder;
[0037] If not, use of the software is permitted.
[0038] Specifically, the following steps are used to determine whether the local system time has been modified:
[0039] Get the local log file time and system evtx file time;
[0040] Verify whether the log file time is consistent with the system evtx file time;
[0041] If they are inconsistent, it is determined that the local system time is modified.
[0042] Furthermore, after determining that the local system time is modified, the method further includes:
[0043] The system evtx file time is used as the time when the local system is modified, and the number of times the local system time is modified is increased by one in the file counter.
[0044] Preferably, before determining whether the UTC time is greater than or equal to the expiration time of the authorization validity period, the method further includes:
[0045] Query the number of times the local system time is modified recorded in the file counter;
[0046] If the number of times the local system time is modified is not zero, the number of times the local system time is modified is cleared.
[0047] Specifically, the user independent authorization certificate is obtained through the following steps:
[0048] Feedback permission information to the license management system, wherein the permission information at least includes validity period information of the purchased software;
[0049] Receiving an institutional authorization certificate fed back by the license management system, wherein the institutional authorization certificate is generated by the license management system according to the authority information;
[0050] In response to a user's instruction to start the software, submit the institution authorization certificate and the pre-generated registration file to the license management system;
[0051] When the license management system passes the verification of the submitted institution authorization certificate, the license management system receives the user independent authorization certificate generated according to the registration file and fed back by the license management system.
[0052] Furthermore, the registration file is generated by the following steps:
[0053] In response to the user's instruction to install the software, obtain the local hardware information and software information, the hardware information at least including the hard disk serial number and CPU serial number of the local computer, and the software information at least including the version information and registration date of the software running on the local computer;
[0054] The hardware information and the software information are mixed and encrypted using a SHA algorithm and a custom algorithm to generate the registration file.
[0055] In a second aspect, an embodiment of the present specification provides a software licensing device based on time coupling, including:
[0056] A response module, for responding to a user's instruction to start the software, decrypting the user's independent authorization certificate and comparing the decrypted software and hardware information with the local information;
[0057] A judging module, used for judging whether the software and hardware information is consistent with the local machine information;
[0058] A verification and activation module, configured to perform a first verification on the authorization validity period of the software when the software and hardware information is consistent with the local information, and allow the software to be activated when the first verification passes;
[0059] A verification and use module, configured to perform a second verification on the authorization validity period of the software in response to a user's instruction to use the software, and to allow the use of the software when the second verification passes;
[0060] The feedback module is used to feedback a permission error reminder when the software and hardware information is inconsistent with the local machine information.
[0061] In a third aspect, an embodiment of the present specification provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method provided by the above technical solution when executing the computer program.
[0062] In a fourth aspect, an embodiment of the present specification provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method provided by the above technical solution is implemented.
[0063] In a fifth aspect, an embodiment of the present specification provides a computer program product, comprising at least one instruction or at least one program, wherein the at least one instruction or the at least one program is loaded and executed by a processor to implement the method provided by the above technical solution.
[0064] By adopting the above technical solution, a software licensing method, apparatus and computer equipment based on time coupling provided in the embodiments of this specification adopt a dual authentication method, performing a first verification and a second verification respectively when the software is turned on and when the software is used, which can effectively prevent the user from turning on the software when not in use to avoid the problem of overusing the software before the expiration date of the software, thereby improving the reliability of software licensing supervision, safeguarding the intellectual property rights and economic interests of software developers and protecting the user's rights to use the software.
[0065] In order to make the above and other purposes, features and advantages of the embodiments of this specification more obvious and easy to understand, the following specifically cites preferred embodiments and describes them in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] In order to more clearly illustrate the embodiments of this specification or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0067] Figure 1 A schematic diagram of the steps of a software licensing method based on time coupling provided in an embodiment of this specification is shown;
[0068] Figure 2 A schematic diagram showing the steps of performing a first verification on the authorization validity period of software and allowing the software to be opened when the first verification passes in an embodiment of this specification;
[0069] Figure 3 A schematic diagram showing the steps of first verifying the validity period of software authorization when the local system time is inconsistent with the UTC time in the embodiment of this specification;
[0070] Figure 4 A schematic diagram showing the steps of performing a second verification on the authorization validity period of the software and allowing the use of the software when the second verification passes in an embodiment of the present specification;
[0071] Figure 5 A schematic diagram showing the steps of obtaining a user independent authorization certificate in an embodiment of this specification is shown;
[0072] Figure 6 A schematic diagram showing the steps of generating a registration file in an embodiment of this specification is shown;
[0073] Figure 7 A schematic diagram of the structure of a software licensing device based on time coupling provided in an embodiment of this specification is shown;
[0074] Figure 8 A schematic diagram of the structure of a computer device provided in an embodiment of this specification is shown.
[0075] Description of the accompanying symbols:
[0076] 71. Response module;
[0077] 72. Judgment module;
[0078] 73. Verify and enable the module;
[0079] 74. Verification and use module;
[0080] 75. Feedback module;
[0081] 802. Computer equipment;
[0082] 804, processor;
[0083] 806. Memory;
[0084] 808, driving mechanism;
[0085] 810, input / output module;
[0086] 812. Input device;
[0087] 814. Output device;
[0088] 816. Presentation equipment;
[0089] 818. Graphical user interface;
[0090] 820, network interface;
[0091] 822, communication link;
[0092] 824. Communication bus. DETAILED DESCRIPTION
[0093] The following will be combined with the drawings in the embodiments of this specification to clearly and completely describe the technical solutions in the embodiments of this specification. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this specification.
[0094] It should be noted that the terms "first", "second", etc. in this specification and claims and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of this specification described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, device, product or equipment that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or equipment.
[0095] The software encryption method in the prior art represented by the encryption dongle is a hardware encryption tool that looks like a USB flash drive, and generally contains a certain size (such as dozens of bytes) of non-volatile storage space for reading and writing. The encryption dongle is usually bundled with specific software. When the software is running, the software startup program automatically detects whether the encryption dongle is correct. If it is correct, the data in the encryption dongle is read, and the encryption dongle gives the calculation result after calculation. If the encryption dongle is incorrect or does not exist, the program will not run. This authorization supervision scheme will result in multiple encryption dongles being required to protect if multiple software are running on the same device, which may cause interference between encryption dongles of different models and affect the normal use of the software. And as the software version is upgraded, the corresponding encryption dongle also needs to be replaced, which greatly increases the cost of software installation and maintenance. In addition, the encryption dongle is also easy to lose and be stolen.
[0096] In order to solve the above problems, the embodiments of this specification provide a software licensing method, apparatus and computer device based on time coupling. Figure 1This is a schematic diagram of the steps of a software licensing method based on time coupling provided in the embodiments of this specification. This specification provides method operation steps as described in the embodiments or flowcharts, but more or fewer operation steps may be included based on conventional or non-creative labor. The order of steps listed in the embodiments is only one way of executing the steps among many orders, and does not represent the only order of execution. When the actual system or device product is executed, it can be executed in the order of the methods shown in the embodiments or the drawings or in parallel. Specifically, Figure 1 As shown, the method may include:
[0097] S110: In response to the user's instruction to start the software, the user's independent authorization certificate is decrypted and the decrypted software and hardware information is compared with the local machine information.
[0098] S120: Determine whether the software and hardware information is consistent with the local machine information.
[0099] S130: If yes, perform a first verification on the authorization validity period of the software, and allow the software to be opened when the first verification passes.
[0100] S140: In response to the user's instruction to use the software, perform a second verification on the authorization validity period of the software, and allow the software to be used when the second verification passes.
[0101] S150: If not, a permission error reminder is fed back.
[0102] The software licensing method based on time coupling provided in the embodiment of this specification adopts a dual authentication method, and performs a first check and a second check respectively when the user opens the software and when the software is used, which can avoid the problem that the user avoids the software validity period limit by keeping the software open when not in use, improves the supervision of software authorization and license, and realizes the fine supervision of the validity period of software authorization. Before the first check and the second check, it also includes the step of verifying the user's independent authorization certificate, which effectively avoids the theft of software and protects the intellectual property rights and economic interests of software developers.
[0103] Specifically, in the embodiments of this specification, Figure 2 As shown, in step S130, performing a first verification on the authorization validity period of the software and allowing the software to be opened when the first verification passes may further include:
[0104] S210: Determine whether the local system time is consistent with the UTC time.
[0105] The UTC time is Universal Time Coordinated (UTC), which can be obtained from the NTP (Network Time Protocol) timing server.
[0106] S220: If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the end time of the authorization validity period.
[0107] That is, when the local system time is consistent with the UTC time, it can be indicated that the user has not modified the local system time, and the next step of judgment can be performed.
[0108] S230: If yes, determine that the software authorization has expired and send an expiration reminder.
[0109] That is, when the UTC time (that is, the local system time) is after the deadline, for example, the UTC time (local system time) is September 1, 2024, and the deadline is August 1 of the same year, it indicates that the software authorization has expired and an expiration reminder needs to be sent to the user. When the UTC time is equal to the deadline, even if the software is still valid when the software is turned on, it will exceed the validity period during subsequent use. Therefore, in this embodiment of the specification, the situation where the UTC time is equal to the deadline during the first check is also determined as the software authorization has expired, thereby simplifying subsequent steps.
[0110] S240: If not, allowing the software to be started.
[0111] On the contrary, the standard software is still within the authorization validity period, and the software can be successfully opened.
[0112] The software licensing method based on time coupling provided in the embodiments of this specification can detect the user's modification of the system time by comparing the local system time with the UTC time, thereby avoiding dishonest behavior of maliciously modifying the system time to circumvent the authorization validity period limit.
[0113] Furthermore, if Figure 3 As shown, the software licensing method based on time coupling provided in the embodiment of this specification, if the local system time is inconsistent with the UTC time, further includes:
[0114] S310: Determine whether the local system time has been modified.
[0115] When the local system time is inconsistent with the UTC time, it may be that the user has modified the local system time, or the local system time may not be updated or synchronized due to network interruption or other failures. Therefore, it is necessary to make a judgment.
[0116] S320: If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold.
[0117] In some possible application scenarios, there may be a need for users to change the local system time when using the software. The method provided in the embodiments of this specification can meet the user's need to change the system time and provide these users with personalized customization and a more portable and flexible online authorization method; however, the number of times a user can modify the system time is limited.
[0118] It should be noted that when the local system time is inconsistent with the UTC time due to network interruption or failure, the network needs to be diagnosed and reconnected.
[0119] S330: If the number of modifications is less than or equal to the predetermined modification number threshold, determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified.
[0120] In the embodiment of this specification, when the local system time is modified more than once, the time closest to the current time is selected as the most recent modification time and recorded as T1; the time of the software start instruction is recorded as T2, and T1 and T2 are compared.
[0121] S340: If yes, determine whether the time of the current start instruction is greater than or equal to the deadline.
[0122] S350: If yes, determine that the software fails to start and send an expiration reminder.
[0123] S360: If not, allow the software to be started.
[0124] That is Figure 3 The method flow shown can be continued Figure 2 In the method flow shown, step S220 is after the branch where the judgment is no. Figure 2 and Figure 3 The steps shown can be used to perform a comprehensive verification and judgment of the software authorization validity period when the user starts the software, whether the user has not modified the local system time or has modified the local system time.
[0125] Furthermore, if Figure 4 As shown, in the embodiment of this specification, step S140: performing a second verification on the authorization validity period of the software and allowing the use of the software when the second verification passes, may further include:
[0126] S401: Determine whether the local system time is consistent with the UTC time;
[0127] S402: If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the expiration time of the authorization validity period;
[0128] S403: If yes, determining that the software authorization has expired and sending an expiration reminder;
[0129] S404: If not, use of the software is permitted.
[0130] That is, when the local system time has not been modified, the method for determining whether the software meets the usage conditions and the method for determining whether the software meets the activation conditions are the same or similar.
[0131] Furthermore, the method further comprises:
[0132] S405: If the local system time is inconsistent with the UTC time, determine whether the local system time has been modified.
[0133] That is, in addition to the situation where the user modifies the local system time, there may also be a situation where the local system time is not synchronized due to problems such as network interruption, which needs to be judged.
[0134] S406: If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold.
[0135] Exemplarily, in the embodiments of this specification, the modification number threshold may be preset to 5 times, that is, the user is allowed to have 5 opportunities to modify the system time.
[0136] S407: If the number of modifications is less than or equal to the predetermined modification number threshold, determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified.
[0137] S408: If yes, obtain the time of this use instruction, the time of the last opening instruction and the time of the last use instruction.
[0138] In the embodiment of the present specification, the time of the current use of the command may be recorded as T3, the time of the last opening of the command may be recorded as T2', and the time of the last use of the command may be recorded as T3'.
[0139] S409: Determine whether the time of the current opening instruction is greater than the time of the previous opening instruction, whether the time of the current use instruction is greater than the time of the previous use instruction, and whether the system log time is greater than the time of the current use instruction.
[0140] That is, determine whether the conditions of T2>T2', T3>T3' and system log time>T3 are met.
[0141] It should be noted that if this is the first time the software is started and used after installation, there is no corresponding time T2' of the last start instruction and time T3' of the last use instruction. At this time, it can be assumed that the time T2' of the last start instruction and the time T3' of the last use instruction are both 0, then the conditions of T2>T2' and T3>T3' must be met.
[0142] S410: If yes, determine whether the time of the current use instruction is greater than or equal to the deadline.
[0143] S411: If yes, determine that the software has failed to be used and send an expiration reminder.
[0144] S412: If not, use of the software is permitted.
[0145] That is Figure 4 As shown, the method provided in the embodiment of this specification can, when the user uses the software, perform a comprehensive verification and judgment on the software license validity period when the user has not modified the local system time and when the user has modified the local system time, thereby avoiding dishonest behavior of circumventing the software license validity period limit by modifying the system time.
[0146] Furthermore, if it is determined in step S330 or step S407 that the time of the current opening instruction is less than the time when the local system was last modified, the method further includes:
[0147] Compare the UTC time with the cut-off time;
[0148] If the UTC time is greater than or equal to the deadline, it is determined that the software authorization has expired and an expiration reminder is sent;
[0149] If the UTC time is less than the deadline, the software is allowed to be opened or used.
[0150] When the time of the current opening instruction is less than the time when the local system was last modified, that is, the time of opening the software is less than the current system time, the standard local system time must be modified, because the local machine must be opened first to open the software, and the time of opening the software should not be earlier than the system time. At this time, since the number of times the local system time has been modified has not exceeded the preset modification number threshold, the correct local system time, that is, UTC time, is compared with the software deadline.
[0151] In the embodiment of this specification, in step S310 and step S405, it is determined whether the local system time is modified by the following steps:
[0152] Get the local log file time and system evtx file time;
[0153] Verify whether the log file time is consistent with the system evtx file time;
[0154] If they are inconsistent, it is determined that the local system time is modified.
[0155] After determining that the local system time is modified, the method further includes:
[0156] The system evtx file time is used as the time when the local system is modified, and the number of times the local system time is modified is increased by one in the file counter.
[0157] In the embodiments of the present specification, the number of times the system time has been modified is determined and recorded by comparing the time of the system evtx file and other log files, thereby meeting the needs of some users for system time changes, providing these users with personalized customization and a more portable and flexible online authorization method. At the same time, the number of times a user can modify the system time is limited, preventing users from avoiding authorization expiration by modifying the system time multiple times before the software authorization expires.
[0158] In some preferred embodiments, before step S220 or step S402: determining whether the UTC time is greater than or equal to the expiration time of the authorization validity period, the method further includes:
[0159] Query the number of times the local system time is modified recorded in the file counter;
[0160] If the number of times the local system time is modified is not zero, the number of times the local system time is modified is cleared.
[0161] At this time, since the local system time is consistent with the UTC time, it indicates that the user has not tampered with the time, so there is no need to record the number of modifications and clear the number in the file counter.
[0162] Further, such as Figure 5 As shown, in the embodiment of this specification, the user independent authorization certificate in step S110 is obtained through the following steps:
[0163] S510: Feedback permission information to the license management system, wherein the permission information at least includes validity period information of the purchased software.
[0164] In addition to the validity period information, the permission information may also include user information, software version and function information, etc. User information may include user personal information, user organization or enterprise information, wherein user personal information includes user name, user contact information (which may include contact phone number, contact email address).
[0165] It should be noted that in the embodiments of this specification, user information is information that has been authorized and agreed by the user in the past. In addition, the acquisition, storage, use, and processing of user information in the technical solutions described in the embodiments of this specification are in compliance with the relevant provisions of national laws and regulations.
[0166] S520: Receive the institution authorization certificate fed back by the license management system, where the institution authorization certificate is generated by the license management system according to the authority information.
[0167] The licensing management system can use the RSA algorithm to encrypt the permission information. When generating an institutional authorization certificate, the public key is also written into the institutional authorization certificate, and the private key is stored on the system side, thereby achieving a complete separation of the public and private keys. This prevents the outside world from obtaining the private key or inferring the private key, thereby ensuring the security and confidentiality of the institutional authorization certificate when it is fed back to the user side.
[0168] S530: In response to the user's instruction to start the software, submit the institution authorization certificate and the pre-generated registration file to the license management system.
[0169] The registration file is generally generated when the software is first installed on the user's end. After that, each time the software is started, the registration file will be retrieved from the user's end again and uploaded to the license management system together with the institution's authorization certificate for verification.
[0170] S540: After the license management system passes the verification of the submitted institution authorization certificate, the license management system receives the user independent authorization certificate generated according to the registration file and fed back by the license management system.
[0171] That is, the licensing management system verifies the institutional authorization certificate uploaded by the user to determine whether it is consistent with the institutional authorization certificate generated by the system based on the permission information. If they are consistent, a user independent authorization certificate is generated based on the registration file. Subsequently, the software and hardware information is compared each time the software is started and used.
[0172] The method provided in the embodiments of this specification generates an independent user authorization certificate to prevent illegal copying and use of the software, and can perform authorization verification when the subsequent user opens and uses the software. This is different from traditional software authorization and licensing supervision, and realizes a hardware-free, networked and information-based software authorization method, which is conducive to improving the security and reliability of software licensing.
[0173] In some preferred embodiments, when the use of the software is allowed, only the authorized function range that the user has purchased can be displayed to the user based on the software version and function information in the permission information.
[0174] like Figure 6 As shown, in some preferred embodiments, the registration file in step S530 is generated by the following steps:
[0175] S610: In response to the user's installation instruction for the software, obtain the local hardware information and software information, the hardware information at least includes the local hard disk serial number and CPU serial number, and the software information at least includes the version information and registration date of the software running on the local computer.
[0176] Installation instructions are instructions for installing the software on the user's end for the first time.
[0177] S620: Use the SHA algorithm and the custom algorithm to perform mixed encryption on the hardware information and the software information to generate the registration file.
[0178] Exemplarily, the SHA algorithm generates a 128-bit ciphertext sequence from a segment of input plaintext data through an irreversible transformation; the custom algorithm may be to use a pre-agreed symbol and a randomly generated 12-bit random number for Base64 encoding to form a sequence; finally, the sequence is added to the password sequence generated by the SHA algorithm to form a registration file.
[0179] Since an irreversible algorithm is used in the embodiments of this specification, it is impossible to derive the original information based on the registration file, thereby avoiding illegal forgery of registration information, effectively preventing tampering, improving the strength of software protection, protecting the intellectual property rights and economic interests of software developers, and protecting the user's rights to use the software.
[0180] Furthermore, in step S320 or step S406, when it is determined that the number of times the local system time is modified is greater than a predetermined modification number threshold, the method further includes:
[0181] Force the user end to update the local system time through the Internet, and compare the local system time after the update with the deadline;
[0182] When the local system time after the update and network connection is greater than or equal to the deadline, the software authorization is determined to have expired and an expiration reminder is sent;
[0183] When the local system time after the update and network connection is less than the deadline, it is determined that the software is still within the validity period, and the software is allowed to be opened or used.
[0184] Based on the above-mentioned software licensing method based on time coupling, the embodiment of this specification also provides a software licensing device based on time coupling. The device may include a system (including a distributed system), software (application), module, component, server, client, etc. using the method described in the embodiment of this specification and a device combined with necessary implementation hardware. Based on the same innovative concept, the device in one or more embodiments provided in the embodiment of this specification is as described in the following embodiments. Since the implementation scheme and method of the device to solve the problem are similar, the implementation of the specific device in the embodiment of this specification can refer to the implementation of the aforementioned method, and the repetitions will not be repeated. As used below, the term "unit" or "module" can implement a combination of software and / or hardware of predetermined functions. Although the device described in the following embodiments is preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceived.
[0185] like Figure 7 As shown, a software licensing device based on time coupling provided by an embodiment of this specification includes:
[0186] The response module 71 is used to respond to the user's instruction to start the software, decrypt the user's independent authorization certificate and compare the decrypted software and hardware information with the local information;
[0187] A judging module 72, used to judge whether the software and hardware information is consistent with the local information;
[0188] A verification and activation module 73, configured to perform a first verification on the authorization validity period of the software when the software and hardware information is consistent with the local information, and to allow activation of the software when the first verification passes;
[0189] A verification and use module 74, for performing a second verification on the authorization validity period of the software in response to a user's instruction to use the software, and allowing the use of the software when the second verification passes;
[0190] The feedback module 75 is used to feedback a permission error reminder when the software and hardware information is inconsistent with the local machine information.
[0191] The beneficial effects obtained by the device provided in the embodiments of this specification are consistent with the beneficial effects obtained by the above method and will not be described in detail here.
[0192] like Figure 8As shown, a computer device provided in an embodiment of this specification is provided. The software licensing device based on time coupling in this specification can be a computer device in this embodiment, and the above method of this specification is executed. The computer device 802 may include one or more processors 804, such as one or more central processing units (CPUs), and each processing unit may implement one or more hardware threads. The computer device 802 may also include any memory 806, which is used to store any kind of information such as code, settings, data, etc. Non-limiting, for example, the memory 806 may include any one or more combinations of the following: any type of RAM, any type of ROM, flash memory device, hard disk, optical disk, etc. More generally, any memory can use any technology to store information. Further, any memory can provide volatile or non-volatile retention of information. Further, any memory can represent a fixed or removable component of the computer device 802. In one case, when the processor 804 executes an associated instruction stored in any memory or a combination of memories, the computer device 802 can perform any operation of the associated instruction. The computer device 802 also includes one or more drive mechanisms 808 for interacting with any storage, such as a hard disk drive mechanism, an optical disk drive mechanism, etc.
[0193] The computer device 802 may also include an input / output module 810 (I / O) for receiving various inputs (via input devices 812) and for providing various outputs (via output devices 814). A specific output mechanism may include a presentation device 816 and an associated graphical user interface (GUI) 818. In other embodiments, the input / output module 810 (I / O), the input device 812, and the output device 814 may not be included, and the computer device 802 may be used as a computer device in a network. The computer device 802 may also include one or more network interfaces 820 for exchanging data with other devices via one or more communication links 822. One or more communication buses 824 couple the components described above together.
[0194] The communication link 822 may be implemented in any manner, for example, through a local area network, a wide area network (e.g., the Internet), a point-to-point connection, etc., or any combination thereof. The communication link 822 may include any combination of hardwired links, wireless links, routers, gateway functions, name servers, etc. governed by any protocol or combination of protocols.
[0195] Corresponding to Figures 1 to 6 In addition to the method shown, an embodiment of the specification also provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the above method are executed.
[0196] The embodiment of the present specification also provides a computer-readable instruction, wherein when the processor executes the instruction, the program therein causes the processor to execute the following Figures 1 to 6 The method shown.
[0197] The embodiments of the present specification also provide a computer program product, including at least one instruction or at least one program, wherein the at least one instruction or the at least one program is loaded and executed by a processor to implement the following Figures 1 to 6 The method shown.
[0198] It should be understood that in the various embodiments of this specification, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this specification.
[0199] It should also be understood that in the embodiments of this specification, the term "and / or" is only a description of the association relationship of the associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this specification generally indicates that the associated objects before and after are in an "or" relationship.
[0200] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed in this specification can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this specification.
[0201] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0202] In the several embodiments provided in this specification, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units 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. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or it can be an electrical, mechanical or other form of connection.
[0203] 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 embodiments of this specification.
[0204] In addition, each functional unit in each embodiment of this specification 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 integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0205] 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 storage medium. Based on this understanding, the technical solution of this specification is essentially 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 storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of this specification. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.
[0206] Specific embodiments are used in this specification to illustrate the principles and implementation methods of this specification. The description of the above embodiments is only used to help understand the methods and core ideas of this specification. At the same time, for those skilled in the art, according to the ideas of this specification, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on this specification.
Claims
1. A software licensing method based on time coupling, characterized in that: include: In response to the user's instruction to start the software, decrypt the user's independent authorization certificate and compare the decrypted software and hardware information with the local machine information; Determine whether the software and hardware information is consistent with the local machine information; If yes, then a first verification is performed on the authorization validity period of the software, and the software is allowed to be opened when the first verification passes; In response to a user's instruction to use the software, performing a second verification on the authorization validity period of the software, and allowing the software to be used when the second verification passes; If not, a permission error reminder is fed back.
2. The method according to claim 1, characterized in that Performing a first verification on the authorization validity period of the software and allowing the software to be opened when the first verification passes, further comprising: Determine whether the local system time is consistent with UTC time; If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the end time of the authorization validity period; If so, determining that the software authorization has expired and sending an expiration reminder; If not, the software is allowed to be opened.
3. The method according to claim 2, characterized in that If the local system time is inconsistent with the UTC time, the method further includes: Determine whether the local system time has been modified; If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold; If the number of modifications is less than or equal to the predetermined modification number threshold, then determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified; If yes, determine whether the time of the current opening instruction is greater than or equal to the deadline; If so, determining that the software fails to start and sending an expiration reminder; If not, the software is allowed to be opened.
4. The method according to claim 1, characterized in that Performing a second verification on the authorization validity period of the software and allowing the use of the software when the second verification passes, further comprising: Determine whether the local system time is consistent with UTC time; If the local system time is consistent with the UTC time, determine whether the UTC time is greater than or equal to the end time of the authorization validity period; If so, determining that the software authorization has expired and sending an expiration reminder; If not, use of the software is permitted.
5. The method according to claim 4, characterized in that The method further comprises: If the local system time is inconsistent with the UTC time, determine whether the local system time has been modified; If the local system time is modified, determine whether the number of times the local system time is modified is less than or equal to a predetermined modification number threshold; If the number of modifications is less than or equal to the predetermined modification number threshold, then determine whether the time of the software start instruction is greater than or equal to the time when the local system was last modified; If so, obtain the time of this command use, the time of the last command opening, and the time of the last command use; Determine whether the time of the current opening instruction is greater than the time of the previous opening instruction, whether the time of the current use instruction is greater than the time of the previous use instruction, and whether the system log time is greater than the time of the current use instruction; If yes, determine whether the time of the current use instruction is greater than or equal to the deadline; If so, determining that the software has failed to be used and sending an expiration reminder; If not, use of the software is permitted.
6. The method according to claim 2 or 4, characterized in that: Determine whether the local system time has been modified by the following steps: Get the local log file time and system evtx file time; Verify whether the log file time is consistent with the system evtx file time; If they are inconsistent, it is determined that the local system time is modified.
7. The method according to claim 6, characterized in that After determining that the local system time is modified, the method further includes: The system evtx file time is used as the time when the local system is modified, and the number of times the local system time is modified is increased by one in the file counter.
8. The method according to claim 7, characterized in that Before determining whether the UTC time is greater than or equal to the expiration time of the authorization validity period, the method further includes: Query the number of times the local system time is modified recorded in the file counter; If the number of times the local system time is modified is not zero, the number of times the local system time is modified is cleared.
9. The method according to claim 1, characterized in that: The user independent authorization certificate is obtained through the following steps: Feedback permission information to the license management system, wherein the permission information at least includes validity period information of the purchased software; Receiving an institutional authorization certificate fed back by the license management system, wherein the institutional authorization certificate is generated by the license management system according to the authority information; In response to a user's instruction to start the software, submit the institution authorization certificate and the pre-generated registration file to the license management system; When the license management system passes the verification of the submitted institution authorization certificate, the license management system receives the user independent authorization certificate generated according to the registration file and fed back by the license management system.
10. The method according to claim 9, characterized in that The registration file is generated by the following steps: In response to the user's instruction to install the software, obtain the local hardware information and software information, the hardware information at least including the hard disk serial number and CPU serial number of the local computer, and the software information at least including the version information and registration date of the software running on the local computer; The hardware information and the software information are mixed and encrypted using a SHA algorithm and a custom algorithm to generate the registration file.
11. A software licensing device based on time coupling, characterized in that: include: A response module, for responding to a user's instruction to start the software, decrypting the user's independent authorization certificate and comparing the decrypted software and hardware information with the local information; A judgment module, used to judge whether the software and hardware information is consistent with the local information; A verification and activation module, configured to perform a first verification on the authorization validity period of the software when the software and hardware information is consistent with the local information, and allow the software to be activated when the first verification passes; A verification and use module, configured to perform a second verification on the authorization validity period of the software in response to a user's instruction to use the software, and to allow the use of the software when the second verification passes; The feedback module is used to feedback a permission error reminder when the software and hardware information is inconsistent with the local machine information.
12. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the method according to any one of claims 1 to 10 is implemented.
13. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 10 is implemented.
14. A computer program product, characterized in that The method comprises at least one instruction or at least one program, wherein the at least one instruction or the at least one program is loaded and executed by a processor to implement the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Offline management method and device for software permission, computer device and storage medium
CN110008659A
Software authorization certificate manufacturing method and device and software authorization certificate verification method and device
CN112733090A
Software offline authorization management method and device, electronic equipment and storage medium
CN117521035A
Authorization control method and device based on one-time password and license
CN117874716A
Off-line verification method, device and equipment for authorized software and storage medium
CN118133243A