Wa'alaikumussalaam wrwb.
Semua ibadah termasuk shalat, apabila dilaksanakan dengan benar sesuai dengan aturannya, pasti akan menjadikan pelakunya menjadi baik, karena itu adalah janji Allah dan Allah itu tidak akan pernah mengingkari janjinya ( QS.29:45 )
Oleh karena itu, maka jika seseorang sudah rajin beribadah, akan tetapi ia masih banyak melakukan kemaksiatan, maka seyogyanya ia segera meng-evaluasi ibadahnya, barangkali ada aturan-aturan ibadah yang belum dipenuhinya, sehingga ibadahnya belum bisa mencegahnya dari kemaksiatan (keikhlasannya, atau trukunnya atau syaratnya atau yang lainnya ?), termasuk zina tangan/onani, itu adalah kemasiatan yang salah satu terapinya dengan berpuasa, maka kalau saja puasanya benar, semestinya ia tidak akan lagi melakukan onani
Demikian, semoga Allah senantiasa berkenan membimbing kita semua ke jalan yang diridhoi-Nya
Wallahu a'lam bishshawaab
Wassalaamu'alaikum wrwb.