class usefulRSA():

    # 初始化,若未输入密钥路径,则随机生成密钥
    def __init__(self, nbits=512, outpath=None, keypath=None):
        self.a = RSA()
        if keypath != None:
            self.a.inputKey(keypath)
            self.mode = self.a.mode
            return
        if outpath == None:
            outpath = 'PublickeyCipher\\'
        self.a.generateKey(nbits)
        self.a.outputPublicKey(outpath)
        self.a.outputPrivateKey(outpath)

    # 手动设置密钥
    def setKey(self, outpath):
        self.a.inputKey(outpath)
        self.mode = self.a.mode

    # 文件加密
    def fileEncrypt(self, filepath, suffix='.encrypt'):
        f1 = open(filepath, 'rb')
        c = self.a.Encrypt(f1.read())
        f1.close()
        f2 = open(filepath + suffix, 'wb')
        f2.write(c)
        f2.close()

    # 文件解密
    def fileDecrypt(self, filepath, suffix='.decrypt'):
        f1 = open(filepath, 'rb')
        m = self.a.Decrypt(f1.read())
        f1.close()
        f2 = open(filepath + suffix, 'wb')
        f2.write(m)
        f2.close()

    # 字节加密
    def byteEncrypt(self, messageByte):
        return self.a.Encrypt(messageByte)

    # 字节解密
    def byteDecrypt(self, messageBytes):
        return self.a.Decrypt(messageBytes)

    # 效果展示
    def show(self):
        file = 'PublickeyCipher\\message'
        self.fileEncrypt(file)
        self.fileDecrypt(file + '.encrypt')
Exemple #2
0
 def test_RSATestNewDec4(self):
     algorithm = RSA()
     plain = algorithm.Decrypt(257, 337, 12448, 17)
     self.assertEqual(plain, 18537)
Exemple #3
0
 def test_RSATestDec3(self):
     algorithm = RSA()
     plain = algorithm.Decrypt(61, 53, 2338, 7)
     self.assertEqual(plain, 70)
Exemple #4
0
 def test_RSATestDec2(self):
     algorithm = RSA()
     plain = algorithm.Decrypt(13, 19, 221, 5)
     self.assertEqual(plain, 65)
Exemple #5
0
 def test_RSATestDec1(self):
     algorithm = RSA()
     plain = algorithm.Decrypt(11, 17, 11, 7)
     self.assertEqual(plain, 88)