瀏覽代碼

Add padding in `encrypt` and implement `decrypt`

DricomDragon 5 年之前
父節點
當前提交
bb3a1b808e
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      tp/rsa/main.hs

+ 7 - 0
tp/rsa/main.hs

@@ -85,3 +85,10 @@ encrypt e n bsize smsg =
 	let bmsg = makeBlocks bsize pmsg in
 	map (\m -> expMod m e n) bmsg
 
+decrypt::Int -> Int -> Int -> Message -> String
+decrypt d n bsize cmsg =
+	let bmsg = map (\c -> expMod c d n) cmsg in
+	let pmsg = splitBlocks bmsg in
+	let msg = unpad pmsg in
+	messageToString msg
+