《工资支付暂行规定》第十五条 用人单位不得克扣劳动者工资。有下列情况之一的,用人单位可以代扣劳动者工资:
(一)用人单位代扣代缴的个人所得税;
(二)用人单位代扣代缴的应由劳动者个人负担的各项社会保险费用;
(三)法院判决、裁定中要求代扣的抚养费、赡养费;
(四)法律、法规规定可以从劳动者工资中扣除的其他费用。第八十四条 用人单位违反本法规定,扣押劳动者居民身份证等证件的,由劳动行政部门责令限期退还劳动者本人,并依照有关法律规定给予处罚。用人单位违反本法规定,以担保或者其他名义向劳动者收取财物的,由劳动行政部门责令限期退还劳动者本人,并以每人五百元以上二千元以下的标准处以罚款;给劳动者造成损害的,应当承担赔偿责任。劳动者依法解除或者终止劳动合同,用人单位扣押劳动者档案或者其他物品的,依照前款规定处罚。
所以工厂的行为不合法,建议到当地劳动监察部门投诉解决。