【TDSQL-C MySQL实践】实现剪切板历史存储

前言

最近因为工作开始使用mac,但mac上没有windows上的剪切板历史功能,虽然mac有其他软件才能实现但是使用非常不习惯,本篇文章主要用python实现读取剪切板并上传到腾讯云的TDSQL-C MySQL存储起来方便日后使用DMC翻阅历史剪切板,而且特别适合多台电脑的情景方便在不同电脑上回顾其他电脑的剪切板。现在正赶上学生优惠可以超低价购入TDSQL-C MySQL,1c1g的一年仅需26元,并可以以此价格续费3次,也就是说104元可以4年,其10g的存储完全够用剪切板历史,还可以存储其他东西!!点我前往

数据库购买

如果您是学生可以通过点我前往以1年26元购买(25岁以下免认证哦),如果不是学生可以通过免费试用入口体验15天,轻量数据库和云数据库MySQL也是一样的,都可以试用!

在这里插入图片描述

选择离您近的地域购买即可

数据库控制台

基本介绍

购买完成后可以直接通过此链接点我前往进入数据库的管理界面。

注意选择相应的地域哦

在这里插入图片描述

我这边以上海为例,可以看到数据库的相关信息如下:

在这里插入图片描述

注意哈,这里有数据库的连接信息我们需要记住其主机和端口,后续要用到!

在这里插入图片描述

配置账号

如下图进入账号管理,可以修改root的密码,也可以增加用户管理不同的数据库。

在这里插入图片描述

修改权限可以修改用户对不同对象的权限

在这里插入图片描述

创建数据库

来到如图页面创建数据库

在这里插入图片描述

配置可以跟图所示一样

在这里插入图片描述

确定完成数据库的创建

查看数据库

我们可以通过DMC来查看数据库,点我前往

在这里插入图片描述

填入相应的信息登陆后可以按图选到刚刚创建的tdsqlnb的对象,再点击加号创建表

在这里插入图片描述

先填上表名

在这里插入图片描述

再切换到列信息,按图设置即可

在这里插入图片描述

Python代码

前置python库

通过pip install安装

  • pycryptodome
  • pyperclip
  • pymysql

rsa加解密

可以在这个网站生成密钥对哦:点我前往
在这里插入图片描述

用于解密的dec.py

import base64  
from Crypto.Cipher import PKCS1_v1_5  
from Crypto.PublicKey import RSA  
  
  
# 您准备的RSA私钥
private_key = '-----BEGIN RSA PRIVATE KEY-----\nMII******t5tg==\n-----END RSA PRIVATE KEY-----'  
  
  
def decrypt(text_encrypted_base64):  
    text_encrypted_base64 = text_encrypted_base64.encode('utf-8')  
    text_encrypted = base64.b64decode(text_encrypted_base64)  
    cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key.encode('utf-8')))  
    return cipher_private.decrypt(text_encrypted, b'0').decode()

用于加密的enc.py

import base64  
from Crypto.Cipher import PKCS1_v1_5  
from Crypto.PublicKey import RSA  
  
# 您准备的RSA公钥 
public_key = '-----BEGIN PUBLIC KEY-----\nMII****QAB\n-----END PUBLIC KEY-----' 
 
 
def encrypt(text):  
    cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))  
    text_encrypted = cipher_public.encrypt(text.encode('utf-8')) # 加密(bytes)  
    return base64.b64encode(text_encrypted).decode()

实现监听

监听模块main.py

import pyperclip  
import time  
import upload_msg  
import uuid  
import enc  
  
  
clipboard_content = ""  
clipboard_list = []  
  
while True:  
    temp_clipboard = pyperclip.paste() # 获取剪切板内容  
    if temp_clipboard != clipboard_content: # 如果剪切板内容没有变化直接跳过  
        clipboard_content = temp_clipboard  
        clipboard_list.append(clipboard_content)  
        print(clipboard_content, upload_msg.commit_msg(enc.encrypt(clipboard_content), 'doone', uuid.uuid4()))  
    time.sleep(0.5) # 设置每次读取间隔

上传数据库

upload_msg.py

import pymysql as MySQLdb  
import uuid  
  
sql_url = '**.sql.tencentcdb.com' # 这里填入之前的主机
port = 2** # 这里填入之前的端口
user = 'root' # 这里以root用户为例
passwd = 'root的密码' # 这里填入您设置的root密码

  
def commit_msg(content, ip, uuid):  
    db = MySQLdb.connect(host=sql_url, user=user, passwd=passwd, charset='utf8', port=port)  
    cursor = db.cursor()  
    db.select_db('tdqslnb')  
    try:  
        cursor.execute(  
        """INSERT INTO `pasteboard` (`uuid`, `content`, `ip`) VALUES ('{0}', '{1}', '{2}');""".format(uuid, content,  
        ip))  
        db.commit()  
        db.close()  
        return True  
    except Exception as e:  
        print(e)  
        db.close()  
        return False

效果

当复制内容后,终端输出

在这里插入图片描述

前面显示的是复制的内容后面是提交数据库的状态

这时候我们就能在DMC里面看到我们之前提交的复制的内容了

在这里插入图片描述

将content的内容复制,并用dec.py的函数解密可以得到:

在这里插入图片描述

后续的数据库读取操作各位大佬可以随意开发了,本文仅提供剪切板数据库存储思路。

非常感谢大家能够看到这里!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值